0
私はRailsで優れたSchema Plus Views gemを使用してSQLビューを作成しました。Rails primary_key継承されない
SQLビューモデルをDRYするために、すべてのSQLビューモデルのスーパークラスを作成しました。
class SqlView < ActiveRecord::Base
self.abstract_class = true
self.primary_key = :id
after_initialize :readonly!
end
それから私はこの問題は、self.primary_keyが継承されていないです
class ChallengeView < SqlView
end
SQLビューを継承します。
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: ....
EDIT
は、Railsのドキュメントによれば、オーバーライドすることができます。なぜ、モジュールとしての構成を含まない
http://api.rubyonrails.org/classes/ActiveRecord/AttributeMethods/PrimaryKey/ClassMethods.html
素晴らしいアイデア。ありがとう! – Fuser97381