0

悲しいことに、レビューを作成しようとすると、Product_id が nil のままになるという問題が発生します。レビューしたい製品にこれを記入する最もクリーンな方法は何ですか?

レビューコントローラー

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

My Product、Review、および User は、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

関連付けを介してオブジェクトを作成しているため、ビルドを使用します

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

これにより、ユーザーの ID が抽出され、レビュー オブジェクトの user_id に追加されます。製品を見つけるためにさらに情報が必要です。レビュー フォームに製品 ID を持つ hidden_​​field を追加することができます。

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