Назначение вложенного атрибута с помощью Formtastic - PullRequest
3 голосов
/ 27 октября 2010

Я пытался выяснить это некоторое время, но все еще не повезло. У меня есть таблица company_relationships, объединяющая Companies и People , в которой хранится дополнительное поле для описания характера отношений, называемых corp_credit_id. Я могу заставить формы работать нормально, чтобы добавить company_relationships для Person, но я не могу понять, как установить это поле модификатора при этом. Есть идеи?

Подробнее о моем проекте: Люди имеют много компаний через 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

Моя форма частичная, с использованием 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 %>

Так что я хотел бы сделать что-то вроде: corp_credit_id => '1' в этом входе, чтобы назначить этот атрибут для кофейни. Но formtastic не позволяет этому назначению произойти.

Есть идеи, как это сделать?

1 Ответ

1 голос
/ 27 октября 2010

Вы ищете что-то вроде

  <% semantic_form_for @person do |form| %>
    <% form.semantic_fields_for :company_relationships do |cr_f| %>
    <%= cr_f.input :corp_credit_id  %>
<% end %>

Это в документации

...