所以我有两个模型,称之为Animal
和AnimalComment
。它们看起来像这样:
class AnimalComment < ActiveRecord::Base
attr_accessible :comment, :num
end
class Animal < ActiveRecord::Base
attr_ accessible :species, :comment
end
我在Animal
中创建评论时,我希望将该评论添加到:comment
模型的AnimalComment
字段中。
我对此工作原理的看法是我在animals/new
网页中输入评论,当我点击Submit
评论获取后添加为AnimalComment
网页内的字段,并且显示在那里。
希望这是有道理的。有什么想法吗?
答案 0 :(得分:4)
我不确定在两个地方存储相同的数据是否合理。也许模型应该是相关的(即Animal
has_many
Comments
)。
在任何情况下,您的要求都可以通过回调来满足。
class Animal < ActiveRecord::Base
attr_accessible :species, :comment
after_save :create_animal_comment
def create_animal_comment
AnimalComment.create(comment: self.comment)
end
end
after_save
方法告诉Rails每次创建Animal#create_animal_comment
记录时都运行Animal
方法。 self.comment
是指Animal
模型中的评论。
答案 1 :(得分:1)
首先,创建关联。然后仅将注释保存在AnimalComment表中。使用动物模型中的delegate
来访问它,或通过关联获取它。