0
我在Rails中創建了一個SQL視圖,使用優秀的Schema Plus Views gem。Rails primary_key沒有繼承
爲了幹掉我的SQL視圖模型,我爲所有SQL視圖模型創建了一個超類。
class SqlView < ActiveRecord::Base
self.abstract_class = true
self.primary_key = :id
after_initialize :readonly!
end
然後我繼承SQL視圖
class ChallengeView < SqlView
end
問題是self.primary_key不被繼承。
irb(main):008:0> c = ChallengeView.find(1)
ActiveRecord::UnknownPrimaryKey: Unknown primary key for table challenge_views in model ChallengeView.
如果我將它添加到模型中,它工作正常。
class ChallengeView < SqlView
self.primary_key = :id
end
irb(main):001:0> c = ChallengeView.find(1)
ChallengeView Load (2.7ms) SELECT "challenge_views".* FROM "challenge_views" WHERE "challenge_views"."id" = $1 LIMIT 1 [["id", 1]]
=> #<ChallengeView id: 1, organizer_id: 1, challenge: ....
編輯
根據Rails文檔也可以被覆蓋。
http://api.rubyonrails.org/classes/ActiveRecord/AttributeMethods/PrimaryKey/ClassMethods.html
好主意。謝謝! – Fuser97381