首先,当您谈论关联时,您必须记住我们build 而不是create。做你需要做的一个非常简单的方法是做
class Comment < ActiveRecord::Base
belongs_to :user
end
并且不要忘记在 User where 中添加关系的另一端:
class User < ActiveRecord::Base
has_many :comments
end
现在,我了解到您必须在 cmets 表中创建了一个字段 user_id。如果没有,则需要通过本次迁移添加。
rails g migration add_user_id_to_comments user_id:string
现在做一个rake db:migrate
另外一种更好的方法是。
在创建模型 cmets 时,您可以像这样在迁移行中添加 users:references
rails g model Comment text:string post:references user:references
这样,关系的一侧将自动添加到模型中,并且 user_id 和 post_id 字段将自动添加到您的 cmets 表中。
回到你的问题。
如果您找不到其他方法,请在隐藏字段中传递用户 ID:
<%= hidden_field_tag "userid", current_user.id%>
我希望您已经定义了当前用户。
现在你可以像这样在 cmets 的控制器中接受它了
If params[:userid]
user_id = params[:userid]
end
您可以在 cmets 控制器的创建操作中将其包含在保存功能之前。
希望对你有帮助
干杯!