0

我很遗憾地遇到了这个问题,当我尝试创建评论时,Product_id 保持为零。为我要审查的产品填写此内容的最简洁方法是什么?

评论_控制器

def create
@user = current_user
@review = @user.reviews.new(params[:review])
if @review.save
  redirect_to products_path, notice: 'Thank you for your review'
else
    render 'new'
  end
end

我的产品、评论和用户设置了 has_many 和 belongs_to 关系。

审查的新观点

%h1 Write a Review

= form_for @review do |f|
  %fieldset
    = f.label :review
    = f.text_area :review
  %fieldset
    = f.label :rating
    = f.text_field :rating
  %fieldset
    = f.submit 'Post Review', class: 'btn btn-large btn-primary'

我知道我没有找到产品 - 我该如何找到它?

4

1 回答 1

0

由于您是通过关联创建对象,因此使用 build

   @review = @user.reviews.build(params[:review])

这将提取用户的 id 并将其添加到您的评论对象中的 user_id 中。我需要更多信息来查找产品,您很可能可以在您的评论表单中添加一个隐藏字段,该字段将具有产品 ID

  <%= hidden_field :product, @product.id %> #not sure how you are currently finding your product
于 2012-08-23T22:18:34.187 回答