2010-10-27 40 views
3

我一直試圖找出這一個一段時間,但仍然沒有運氣。我有一個company_relationships表,加入公司,存儲一個額外的字段來描述關係的性質,稱爲'corp_credit_id'。我可以使表格正常工作,爲一個人添加company_relationships,但我似乎無法弄清楚如何設置該修飾符字段。有任何想法嗎?用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 

我的表單部分,使用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似乎並不允許這項任務發生。

有關如何做到這一點的任何想法?

+0

你的意思是說,當你創建一個公司,是一間咖啡廳,在'corp_credit_id'柱聯接表應該設置爲'1'? – zetetic 2010-10-27 00:34:58

+0

不,我其實在公司模型中有布爾值來確定它是否實際上是咖啡店。我想要做的是在更新人員時設置corp_credit_id,以便我可以分配他們所有的咖啡店。 – 2010-10-27 00:36:58

回答

1

你在尋找類似

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

它是documentation

+0

我已經嘗試過這種方法,並最終顯示它顯示幾個check_boxes,取決於有多少現有的公司關係。我想要做的是有一個checkbox或選擇框,允許多個選擇。提交時,應更新company_relationships並在咖啡店的corp_credit_id字段中存儲「1」。 (其他類型關係的其他數字)。 – 2010-10-27 20:37:45