Ruby on rails 模型和嵌套表单

Ruby on rails 模型和嵌套表单,ruby-on-rails,model,nested-forms,Ruby On Rails,Model,Nested Forms,我正在构建一个应用程序,为消费者和企业提供功能。在创建模型时,我考虑的是用户(消费者)和业务……每个业务都有用户,但用户不一定属于某个业务。为了减少冗余,我会在用户中收集姓名、电子邮件等信息,并在业务中收集特定的业务信息(地址、电话) class Business < ActiveRecord::Base belongs_to :user end class User < ActiveRecord::Base has_one :business #only if bus

我正在构建一个应用程序,为消费者和企业提供功能。在创建模型时,我考虑的是用户(消费者)和业务……每个业务都有用户,但用户不一定属于某个业务。为了减少冗余,我会在用户中收集姓名、电子邮件等信息,并在业务中收集特定的业务信息(地址、电话)

class Business < ActiveRecord::Base
   belongs_to :user  
end

class User < ActiveRecord::Base
 has_one :business #only if business user, not consumer
end
class业务
这是配置所需关系的正确方法吗

那么,到了商业登记的时候,是否有可能(以及如何)在我的业务对象是第一个,然后是用户的地方有嵌套的表单……所以我是按这个顺序收集信息的?我找到的所有示例/信息都显示了先捕获用户信息,然后捕获任何子模型的设置

在下面的示例中,这是否正确:

<%= form_for(@business) do |f| %>
  #grab business info
<%= f.fields_for :user do |ff| %>
 #grab user info

#获取业务信息
#获取用户信息

感谢您的时间和帮助。

您提到企业可能有多个用户,因此应该是:

class Business < ActiveRecord::Base
  has_many :users
end
然后,您可以编辑业务用户:

business_form.fields_for :users do |user_form|
如果您正在创建的新业务尚未有任何用户,则可以在控制器中为该业务生成所需的任意数量的用户,以便用户子窗体具有要使用的对象。在控制器中:

5.times do
  @business.users.build
end
上述内容将为业务生成5个新的用户子表单。

您需要

 class Business < ActiveRecord::Base
  belongs_to :user  
 end

 class User < ActiveRecord::Base
  has_one :business #only if business user, not consumer
  attr_accessible :business_attributes
  accepts_nested_attributes_for :business
 end
class业务
形式应该是

 <%= form_for(@user) do |f| %>
  #grab user info
 <%= f.fields_for :business_attributes do |ff| %>
  #grab business info

#获取用户信息
#获取业务信息
然后使用update方法中的update_属性更新用户

 class Business < ActiveRecord::Base
  belongs_to :user  
 end

 class User < ActiveRecord::Base
  has_one :business #only if business user, not consumer
  attr_accessible :business_attributes
  accepts_nested_attributes_for :business
 end
 <%= form_for(@user) do |f| %>
  #grab user info
 <%= f.fields_for :business_attributes do |ff| %>
  #grab business info