Ruby on rails - 未定义的方法`每个'为零:NilClass

时间:2016-12-15 11:20:25

标签: ruby-on-rails ruby methods haml

每次我提交表单时都会收到此错误:undefined method `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

2 个答案:

答案 0 :(得分:2)

也在创建操作中分配订阅:

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表单后,将create直接添加到new操作。

答案 1 :(得分:0)

这种情况正在发生,因为该模型没有持久的价值。 您可以将数据检入rails console 喜欢,

$rails console
> Businesses::Subscription.count

如果您发现没有数据,那么您可以编写if ... end块来检查空值并处理它。

相关问题