Ruby on rails - nil:NilClass 的未定义方法“each”
Ruby on rails - undefined method `each' for nil:NilClass
每次我提交表单时都会收到此错误:undefined method `each' for nil:NilClass
。如果一切正确,我可以毫无问题地提交表格,但是当缺少一件事时,它就会给我错误。该错误将我发送到此行:
views/users/new.html.haml
- @subscriptions.each do |fbs|
= fb.radio_button :subscription_id, fbs.id, class: 'radiobtn', required: true
controllers/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
它正在发生,因为该模型没有任何价值。
您可以将数据检查到 rails console
喜欢,
$rails console
> Businesses::Subscription.count
如果您发现没有数据,那么您可以编写一个 if ... end
块来检查空值并处理它。
也在创建操作中分配订阅:
before_filter :set_subscriptions, only: %w(new create) #for edit and update if needed
private
def set_subscriptions
@subscriptions = Businesses::Subscription.all
end
或者保存失败后直接在create
动作中添加@subscriptions = Businesses::Subscription.all
,重新渲染new
表单
每次我提交表单时都会收到此错误:undefined method `each' for nil:NilClass
。如果一切正确,我可以毫无问题地提交表格,但是当缺少一件事时,它就会给我错误。该错误将我发送到此行:
views/users/new.html.haml
- @subscriptions.each do |fbs|
= fb.radio_button :subscription_id, fbs.id, class: 'radiobtn', required: true
controllers/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
它正在发生,因为该模型没有任何价值。
您可以将数据检查到 rails console
喜欢,
$rails console
> Businesses::Subscription.count
如果您发现没有数据,那么您可以编写一个 if ... end
块来检查空值并处理它。
也在创建操作中分配订阅:
before_filter :set_subscriptions, only: %w(new create) #for edit and update if needed
private
def set_subscriptions
@subscriptions = Businesses::Subscription.all
end
或者保存失败后直接在create
动作中添加@subscriptions = Businesses::Subscription.all
,重新渲染new
表单