繁体   English   中英

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

同样在创建操作中分配订阅:

before_filter :set_subscriptions, only: %w(new create) #for edit and update if needed

private
def set_subscriptions
  @subscriptions = Businesses::Subscription.all
end

或直接添加@subscriptions = Businesses::Subscription.all以在保存失败并重新呈现new表单后create操作。

之所以发生这种情况是因为该模型没有持久的价值。 您可以像这样在rails console检查数据,

$rails console
> Businesses::Subscription.count

如果发现没有数据,则可以编写一个if ... end块以检查空值并进行处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2025 STACKOOM.COM