2017-04-13 8 views
0

私はRailsを使用してブートストラップモーダルフォームを作成しようとしていますが、私は前述のエラーを受けています。ここに私のフォームコード(エラーの結果は)次のとおりです。"フォームの最初の引数にはnilを含めることはできないか、空にすることはできません"が、私の知る限りではありません。

<%= bootstrap_form_for([@restaurant, @review], url: 
new_restaurant_review_path([@restaurant, @review])) do |f| %> 

ここに私のコントローラのコードは次のとおりです。

before_action :set_restaurant 
def new 
    @review = Review.new(restaurant: @restaurant) 
end 
private 
def set_restaurant 
    @restaurant = Restaurant.find(params[:restaurant_id]) 
end 

私が何をすべきかわかりません。

+1

あなたは新しいパス(通常は作成パス)にフォームを提出すべきではないので、それが「新しい」アクションをレンダリングすることができるので、レストランやレビュー変数を再インスタンスではありません。 – bkunzi01

+0

コントローラのコードを更新して、@restaurantの入手方法を確認してください。 –

+0

よろしくお願いします。 –

答えて

0

restaurantに属する新しいreviewのフォームを想定しています。古いバージョンのRailsではこれがうまくいくと思います。

<%= form_for([@restaurant, Review.new]) do |f| %>

+0

これはうまくいった!ありがとうございました! –

+0

問題はありません@ザクシン –

0

@restaurant変数を確認して、それがnilでないことを確認します。私はあなたが@reviewを初期化しているのを見ることができますが、before_actionなどで@restaurantを初期化しない限り、新しいアクションでは初期化されていません。

+0

ありがとう、私はそれを省略したことをキャッチしなかった。私は自分の投稿を更新して、私が何をしているのかをより明白にしました。 –

関連する問題