1

所以我有两个模型,分别称为AnimalAnimalComment。它们看起来像这样:

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并显示在那里。

希望这是有道理的。有任何想法吗?

4

2 回答 2

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.commentAnimal模型中的注释。

于 2013-08-02T22:54:13.157 回答
1

首先,创建关联。然后仅将评论保存在 AnimalComment 表中。在 Animal 模型中使用delegate来访问它,或者通过关联获取它。

于 2013-08-02T23:01:08.507 回答