老实说,我不知道我做错了什么。我有帖子和用户的评论。
user.rb
has_many :comments, dependent: :destroy
post.rb
has_many :comments, dependent: :destroy
comment.rb
belongs_to :user
belongs_to :post
评论控制器
def create
@post = Post.find(params[:post_id])
@comment = @post.comments.create(params[:comment].permit(:body))
@comment.user = current_user
if @comment.save
redirect_to post_path(@post)
else
# something else
end
end
帖子视图
<h2><%= @comment.user.name %></h2>
<p><%= comment.body %></p>
我做错了什么?
在我的控制器中,我也尝试了@comment.user = current_user.name
在我的帖子视图中,我还尝试了<%= @comment.user.name %>
和<%= @comment.user %>
错误:我不记得这是否与我之前遇到的错误相同,但这是我在尝试创建评论时看到的错误。
ActiveModel::MissingAttributeError in CommentsController#create
can't write unknown attribute `user_id`
@comment.user = current_user
答案 0 :(得分:0)
因此,从您的错误消息中看起来您可能没有在评论表中使用您的外键user_id。
您需要运行
rails g migration AddUserToComments用户:参考