フォームを送信するたびに、私はこのエラーを受け取ります:undefined method `each' for nil:NilClass
。すべてが正しければ問題なくフォームを送信できますが、欠落しているものがあるとエラーが発生します。エラーは、この行に私を送信します。Ruby on rails - 未定義メソッド `each 'for nil:NilClass
ビュー/ユーザー/ new.html.haml
- @subscriptions.each do |fbs|
= fb.radio_button :subscription_id, fbs.id, class: 'radiobtn', required: true
コントローラ/ users_controller.rb
def new
@user = Users::Business.new
@subscriptions = Businesses::Subscription.all
end
def create
@user = Users::Business.new(user_params)
if @user.save
sign_in(@user)
else
render :new
end
end
フォームを送信すると、コントローラの 'create'アクションが呼び出されます。どのように見えますか? 'render 'を' '' '@ subscriptions''を設定しないと思っています。 – Stefan
railsコンソールでTopLevel定数に関する推奨されない警告がありましたか?はい、@subscriptions = :: Businesses :: Subscription.allを使用してみてください – cubbiu
編集ありがとうございます。私が思ったように、 'create'の中から' new'テンプレートをレンダリングしますが、テンプレートの必要に応じて '@ subscriptions'を設定しません。 – Stefan