J'ai essayé de comprendre celui-ci pendant un certain temps, mais toujours pas de chance. J'ai une table company_relationships qui joint Entreprises et Personnes, en stockant un champ supplémentaire pour décrire la nature de la relation appelée 'corp_credit_id'. Je peux obtenir les formulaires qui fonctionnent bien pour ajouter company_relationships pour une personne, mais je n'arrive pas à comprendre comment définir ce champ modificateur lorsque je le fais. Des idées?Affectation d'un attribut imbriqué avec Formtastic
En savoir plus sur mon projet: Les gens ont de nombreuses entreprises à travers company_relationships. Avec ce champ supplémentaire, je l'utilise pour regrouper toutes les relations spécifiques. Donc, je peux groupe de Médecins d'une personne, entrepreneurs, etc.
Mes modèles:
Company.rb (abrégé)
class Company < ActiveRecord::Base
include ApplicationHelper
has_many :company_relationships
has_many :people, :through => :company_relationships
Person.rb (abrégé)
class Person < ActiveRecord::Base
include ApplicationHelper
has_many :company_relationships
has_many :companies, :through => :company_relationships
accepts_nested_attributes_for :company_relationships
company_relationship.rb
class CompanyRelationship < ActiveRecord::Base
attr_accessible :company_id, :person_id, :corp_credits_id
belongs_to :company
belongs_to :person
belongs_to :corp_credits
end
Mon formulaire partiel, en utilisant formtastic.
<% semantic_form_for @person do |f| %>
<%= f.error_messages %>
<% f.inputs do %>
...
<%= f.input :companies, :as => :check_boxes, :label => "Favorite Coffee Shops", :label_method => :name, :collection => Company.find(:all, :conditions => {:coffee_shop => 't'}, :order => "name ASC"), :required => false %>
Donc ce que je voudrais faire est quelque chose comme: corp_credit_id => « 1 » dans cette entrée pour attribuer cet attribut Coffee Shop. Mais formtastic ne semble pas permettre cette affectation.
Des idées sur comment faire cela?
Voulez-vous dire de dire que lorsque vous créez une entreprise qui est un magasin de café, la colonne 'corp_credit_id' dans la jointure table doit être définie sur '1'? – zetetic
Non, j'ai des booléens dans le modèle de l'entreprise pour déterminer s'il s'agit en fait d'un café. Ce que j'essaie de faire est de définir corp_credit_id lors de la mise à jour d'une personne, afin que je puisse assigner tous leurs Coffee Shops. –