2012-08-23 3 views
0

나는 슬픈 듯이 문제를 겪는다. 나는 리뷰를 만들려고 할 때 Product_id가 0으로 유지된다. 검토하고 싶은 제품에 대해 가장 적합한 방법은 무엇입니까?검토 시스템, has_many, belongs_to

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 

Reviews_controller

내 제품, 검토 및 사용자가 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' 

나는 제품 찾는 아니에요 알고 있어요위한 새로운보기 - 어떻게 그에게 어떻게해야합니까를?

답변

0

당신이 사용자의 ID를 풀고 리뷰 객체에 USER_ID에 추가합니다

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

을 구축 연관 사용을 통해 객체를 생성하기 때문에. 난 당신이 가능성이 가장 높은 제품 ID를

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

예를해야합니다 당신의 검토 형태로 hidden_field를 추가 할 수있는 제품을 찾으려면 자세한 정보가 필요하지만, 여전히 PRODUCT_ID를 비워 둡니다. 나는 실제로 어떻게 든 지정해야한다는 것을 알고 있지만, @product = Product.find (params [: id])를 사용하면 ID가없는 제품을 찾을 수 없습니다. 오류 –

+0

게시 리뷰 작성 위치에 대한 코드, 제품을 찾는 방법에 대한 정보가 없습니다 –

+0

리뷰는 제품 및 제품은 has_many : reviews이어야합니다. CRUD 액션이있는 Product 컨트롤러가 있어야하며 제품의 각 표시 페이지에서 리뷰 부분을 렌더링해야합니다. –

관련 문제