2010-09-29 56 views
0

我有以下的用戶模型:設置一個加入模型中的一個屬性

class User < ActiveRecord::Base 

    has_many :competences 
    has_many :skills, :through => :competences 

    accepts_nested_attributes_for :skills 
end 

及以下技能模型:

class Skill < ActiveRecord::Base 
    has_many :competences 
    has_many :users, :through => :competences 
end 

勝任力模型有一個「類型」屬性,它是加入模式。在嵌套表單中,如何在保存提交的技能時設置'type'屬性? 這裏是嵌套形式:

<% f.fields_for :skills do |s| %> 
    <%= s.text_field :name %> 
<% end %> 

回答

1

您需要專門創建對象的能力 - 你不能隱式地創建它(一拉HABTM)和它還設置屬性。

@user.competences.create(:type => 'something', :skill => @skill) 

您的用戶模型應該接受Competences的嵌套屬性,它應該接受技能的嵌套屬性。像這樣的東西應該把你放在正確的軌道上:

<% f.fields_for :competences do |c| %> 
    <%= c.text_field :type %> 
    <% c.fields_for :skills do |s| %> 
    <%= s.text_field :name %> 
    <% end %> 
<% end %> 
相關問題