在设计注册的嵌套业务模型

时间:2013-12-26 16:47:54

标签: ruby-on-rails-3 devise registration nested-attributes

我对rails很新,我正在使用设计来为我的用户注册并登录进程。在注册时,如果用户没有邀请令牌,我希望他们也注册并创建与其用户帐户相关联的业务。

以下是我在试图创建新业务时在RegistrationsController中收到的错误的屏幕截图。

NoMethodError in RegistrationsController

这是我在registrations_controller.rb中的代码:

if params[:invite_code]
    ...
else
    resource = build_resource({})
    resource.businesses.build()  # Inserts a blank object for business
    respond_with resource
end

有关为何无法传递所提供的商业信息并创建新业务的任何想法?提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我认为这只是一个多元化的问题。 has_one上的User关联应该是单数(:business),控制器(resource.business.build())和accepts_nested_attributes_for中的方法调用也应如此。

话虽这么说,控制器的那部分应该永远不会被击中。您的所有逻辑都应包含在此first conditional中。发生的所有事情here都应该被提取到另一个方法中,并在成功save之后调用。以下是重构registrations_controller.rbhttps://gist.github.com/ccschmitz/7ea0a41180e25de9168d

的新要点