En tant que débutant RoR, j'apprécie grandement toute assistance à l'avance! Je suis confus moi-même en essayant de créer les modèles nécessaires pour ce qui suit.Rails: attributs imbriqués et modèle?
J'ai 3 objets: Utilisateurs, Organisations et Rôles. Les utilisateurs peuvent appartenir à une ou plusieurs organisations, mais n'auront qu'un seul rôle par organisation. Par exemple:
Jon | Org1 | Propriétaire
Jon | Org2 | Employé
Bob | Org1 | Employé
Bob | Org2 | Propriétaire
Comment le configurer dans mes modèles (has_many, through =>?) Et aussi quand j'ai un formulaire d'édition, je peux mettre à jour les informations utilisateur, leurs organisations et leurs rôles de l'intérieur la même forme? Note: Je ne suis pas sûr que ce soit pertinent, mais j'ai seulement l'intention de permettre à ceux qui sont propriétaires de modifier leur organisation.
Merci encore!
EDIT Voici ce que j'ai, plus une erreur que je reçois maintenant:
modèles/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
modèles/org.rb
class Org < ActiveRecord::Base
end
models/role.rb
class Role < ActiveRecord::Base
end
modèles/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
vues/edit.html.erb
#user form info above...
<%=f.fields_for :orgs do |ff| %>
<div>Your Organization Name:<br />
<%= ff.text_field :name%></div>
<% end %>
Message d'erreur:
Can't mass-assign protected attributes: orgs_attributes
RESOLU:
Ajouté: orgs_attributes à mon modèle utilisateur, attr_accessible
Merci! J'apprécie – user464180
J'ai ajouté mon code et une erreur que je reçois. Si vous avez le temps et pourrait passer en revue, je l'apprécierais sincèrement. Merci encore. – user464180
Je l'ai eu. Merci de m'avoir aidé à trouver le bon chemin vers une solution. – user464180