每当我提交表单时,我得到这个错误: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“new并且不要设置'@ subscriptions'。 – Stefan
您是否在Rail控制台中有一些关于TopLevel常量的不推荐使用的警告?如果是,请尝试使用@subscriptions = :: Businesses :: Subscription.all – cubbiu
感谢您的编辑。就像我怀疑的:你在'create'中渲染'new'模板,但是你不会根据模板的要求设置'@ subscriptions'。 – Stefan