在rails中创建具有关系的多个对象

时间:2011-10-23 11:52:32

标签: ruby-on-rails ruby activerecord activemodel

我是铁杆新手。

我有一个注册表单,用户可以在其中创建项目,同时注册。 应该创建项目,新用户成为项目的“管理员”。

我有以下型号:

class Project < A::B
  has_many :roles
  has_many :users, :through => :roles
  has_one :admin, :through => :roles, :conditions => "role.name = 'admin'"
  has_many :members, :through => :roles, :conditions => "role.name = 'member'"
end 


class User < A::B
  has_many :roles
  has_many :projects, :through => :roles
end

class Role < A::B
   belongs_to :projects
   belongs_to :users
end 

我正在寻找创建封装模型层中关系的设置,并且可以轻松地在视图中为关系中的所有对象创建表单,显示错误等。

希望我很清楚,铁杆的新手。谢谢

2 个答案:

答案 0 :(得分:2)

您还可以查看Ryan Bates的截屏视频:

答案 1 :(得分:1)

首先,为了更轻松地创建表单,我建议使用像formtasticsimple_form这样的gem。 其次,为了使嵌套模型更容易,我建议使用像cocoon这样的宝石,它与formtastic或simple_form完美配合。 Cocoon可以轻松创建动态嵌套模型表单。

希望这有帮助。