我目前有一个用户模型,追逐模型和评论模型。
用户has_many :chasings
和追逐模型belongs_to :user
和has_many :comments
我创建了一个迁移来添加对chasings的引用:user,所以我可以调用Chasing.user:
class AddUsersToChasings < ActiveRecord::Migration
def change
add_reference :chasings, :user, index: true, foreign_key: true
end
end
所以我现在可以成功地为用户分配字符串,但是我想找到使用类似下面的选择列表向用户分配评论的最佳方法(这是选择用户进行查询的代码):
<%= f.select :user_id, options_for_select(User.all.map {|c| [c.name, c.id]}, @chasing.user_id), { :include_blank => "Please select user"}, {:class => "form-control"} %>
如果评论已经属于追逐者,那么任何人都对我如何创建评论和用户之间的关系有任何想法?
答案 0 :(得分:0)
我认为你应该能够通过chasings引用评论:
class User
has_many :chasings
has_many :comments, through: :chasings
end
这样您就可以访问User.first.comments
,就像User.first.chasings
答案 1 :(得分:0)
评论仍然需要分配给chasings,但每个评论都需要为用户分配一个用户,从用户模型中提取。为此,我将has_one :user
添加到我的评论模型,并将has_many :comments
添加到我的用户模型。我还运行了以下迁移来创建两者之间的关系:
class AddUsersToComments < ActiveRecord::Migration
def change
add_reference :comments, :user, index: true, foreign_key: true
end
end