查看系统,has_many,belongs_to

时间:2012-08-23 22:15:10

标签: ruby-on-rails

我遗憾地遇到了这个问题,当我尝试创建一个Review时,Product_id保持为零。什么是最简洁的方法来填补我想要审查的产品?

Reviews_controller

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'

我知道我找不到产品 - 我该怎么做?

1 个答案:

答案 0 :(得分:0)

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

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

将提取用户的ID并将其添加到评论对象中的user_id。我需要更多信息才能找到产品,您很可能会在评论表单中添加一个hidden_​​field,其中包含Products id

  <%= hidden_field :product, @product.id %> #not sure how you are currently finding your product