私は次のクラスを持っています:
class User < ActiveRecord::Base
attr_accessible :language_id
has_many :lists
end
class List < ActiveRecord::Base
attr_accessible :language_id
belongs_to :user
end
新しく作成したリストにユーザーの language_id を自動的に割り当てたい:
# list.language_id should be equal to user.language_id
list = user.lists.create
私が見つけた最もクリーンな解決策は、List クラスにフィルターを追加することです。
before_validation :assign_language_id, on: :create
def assign_language_id
self.language_id = self.user.language_id
end
それは悪い解決策ではないようですが、Rails がそれをうまく処理するための魔法を持っているかどうか知りたいです。コピーする代わりにいつでも要求できることはわかっていますがlist.user.language_id
、本当にここにある必要があると仮定してください.
回答ありがとうございます。