我正在学习本教程:
http://guides.rubyonrails.org/getting_started.html#adding-a-second-model
使用commenter
和comment
时,用户可以添加姓名和消息,但我想将评论与用户ID相关联(我已经拥有用户)
它使用
rails generate model Comment commenter:string body:text post:references
但我想将commenter:string
替换为用户ID关联(user_id:integer
?)。在先前的问题中有人建议author_id:integer
,但它不起作用。不知道从哪里开始,似乎没有关于这个主题的任何教程(我已经阅读了关于协会等的RoR帮助指南,但找不到使用评论模型生成用户ID的正确方法)
comments_controller.rb
def create
@listing = Listing.find(params[:listing_id])
@comment = @listing.comments.create(params[:comment])
redirect_to listing_path(@listing)
end
答案 0 :(得分:1)
您可以像这样生成评论模式:
rails generate model注释用户:引用正文:文本帖子:引用
您指定的references
类型实际上会创建user_id:integer
列,并为belongs_to
模型添加Comment
关联:
class Comment < ActiveRecord::Base
belongs_to :user
belongs_to :post
end
如果您确实想要Comment#commenter
关联来引用用户而非Comment#user
,则可以在Comment
模型中定义,如下所示:
class Comment < ActiveRecord::Base
belongs_to :commenter, class_name: 'User', foreign_key: 'user_id'
belongs_to :post
end