2016-06-13 4 views
0

新しいレビューフォームを作成したいと思いますが、わからないエラーが返されます。あなたは私に問題を説明してくれる?ネストされたフォームを作成します。 "未定義メソッド` push '"

私のコード

路線:

resources :posts do 
    resources :pushs do 
     resources :reviews 
    end 
    end 

リンク:

<%= link_to 'Add comment', new_post_push_review_path(@push.post_id, @push) %> 

私が構築したい形式:

<%= simple_form_for([@post, @post.push.reviews.build]) do |f| %> 

<%= f.input :rating %> 
<%= f.input :comment %> 
<%= f.button :submit %> 

<% end %> 

enter image description here

&最後に、コントローラのレビュー:あなたが任意のアイデアを持っている場合

class ReviewsController < ApplicationController 
    before_action :authenticate_user! 
    before_action :find_push 
    before_action :find_post 




    def new 
    @review = Review.new 
    @pushs = Push.all 
    end 

    def create 
    @push = Push.find(params[:review][:id]) 
    @review = Review.new(review_params) 

    @review.post_id = @push.post_id 
    @review.push_id = @push.id 
    @review.user_id = current_user.id 

    if @review.save 
     redirect_to push_path(@push.post_id, @push) 
    else 
     render 'new' 
    end 
    end 

private 

    def review_params 
    params.require(:review).permit(:rating, :comment) 
    end 



    def find_post 
    @post = Post.find(params[:post_id]) 
    end 

    def find_push 
    @post = Post.find(params[:post_id]) 
    @push = @post.pushs.find(params[:push_id]) 
    end 

end 

まあ、私に私のエラー(複数可)を説明するために、それは素晴らしいことです!あなたのルートで

+1

あなたの 'Reviews'モデルを表示してください –

+0

投稿モデルに問題があるかもしれません。それはhas_oneプッシュを持っていますか? – sethi

+0

投稿モデルを追加してください。私は、あなたのポストモデルにhas_one:pushのようなものがあるかどうかを知りたいと思っています。 – Pholochtairze

答えて

1

、あなたはリソースを変更する必要があります。pushsはへのリソースの操作を行います。

を行うプッシュそして、あなたはポスト団体、プッシュ、レビューのモデルを設定していない可能性があります。

+0

私はプッシュのためにそれを知っていますが、プッシュであまりにも動作している、私は問題が私のレビューのコントローラから来ていると思う。 ポストhas_many(プッシュ&レビュー)、プッシュhas_manyレビュー、belongs_to(ユーザ&ポスト) –

+0

ポストにはたくさんのプッシュがある場合、 '@ post.push'の代わりに' @ post.pushes'を書く必要があります。 。 has_many関連のため、モデル名の複数形を書いています。 '@ post.push'は、has_one関連の場合、正しいでしょう。 – Siddhanth

+0

素晴らしい!これは機能していますが、問題はレビューに関するものです。 (#

関連する問題