Как новичок в RoR, я очень ценю любую помощь заранее! Я запутываю себя, когда пытаюсь создать модели, необходимые для следующего.
У меня есть 3 объекта: пользователи, организации и роли. Пользователи могут принадлежать к одной или нескольким организациям, но будут иметь только одну роль на организацию. Например:
Джон | Org1 | Владелец
Джон | Org2 | Сотрудник
Боб | Org1 | Сотрудник
Боб | Org2 | Владелец
Как мне настроить это в моих моделях (has_many, through =>?), А также чтобы у меня была форма редактирования, чтобы я мог обновлять информацию о пользователях, их организациях и ролях в одной форме? Примечание. Не уверен, что это уместно, но я намерен разрешить редактировать свою организацию только тем, кто является ее владельцем.
Еще раз спасибо!
EDIT
Ниже приведено то, что у меня есть, плюс ошибка, которую я сейчас получаю:
Модели / user.rb
class User < ActiveRecord::Base
has_many :org_roles
has_many :orgs, :through => :org_roles
accepts_nested_attributes_for :orgs, :allow_destroy => true
has_one :user_detail
has_one :user_address
attr_accessible :orgs
end
модель / org.rb
class Org < ActiveRecord::Base
end
Модели / role.rb
class Role < ActiveRecord::Base
end
Модели / org_role.rb
class OrgRole < ActiveRecord::Base
belongs_to :user
belongs_to :org
belongs_to :role
validates_presence_of :user, :org, :role
validates_uniqueness_of :org_id, :scope => :user_id
end
views / edit.html.erb
#user form info above...
<%=f.fields_for :orgs do |ff| %>
<div>Your Organization Name:<br />
<%= ff.text_field :name%></div>
<% end %>
Сообщение об ошибке:
Can't mass-assign protected attributes: orgs_attributes
РЕШИТЬ:
Добавлено: orgs_attributes для моей модели пользователя, attr_accessible