Я пытался понять это, но все равно не повезло. У меня есть таблица company_relationships, которая объединяет . Компании и Люди, сохраняя дополнительное поле, чтобы описать характер отношений, называемый corp_credit_id. Я могу заставить формы работать нормально, чтобы добавить company_relationships для Person, но я не могу понять, как установить это поле модификатора при этом. Есть идеи?Назначение вложенного атрибута с помощью Formtastic
Подробно о моем проекте: Люди имеют много компаний через company_relationships. С этим дополнительным полем я использую его для группировки всех конкретных отношений. Так что я могу группа Врачи человека, подрядчики и т.д.
Мои модели:
Company.rb (сокращенная)
class Company < ActiveRecord::Base
include ApplicationHelper
has_many :company_relationships
has_many :people, :through => :company_relationships
Person.rb (сокращенная)
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
Моя форма частичная, с использованием формыtastic.
<% 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 %>
Так что я хотел бы сделать, это что-то вроде: corp_credit_id => «1» в этом входе, чтобы назначить этот атрибут для кофейни. Но formtastic, похоже, не позволяет выполнять это задание.
Любые идеи о том, как это сделать?
ли вы сказать, что при создании компании, которая является кафе, то 'corp_credit_id' колонна в соединении таблица должна быть установлена в '1'? – zetetic
Нет, у меня на самом деле есть булевы в модели компании, чтобы определить, действительно ли это кафе. То, что я пытаюсь сделать, это установить corp_credit_id при обновлении Person, поэтому я могу назначить все их Coffee Shops. –