2012-07-24 96 views
0

目前我困在我的紅寶石軌道項目。我正在使用rails 3.2在Ruby on Rails中的多表關聯表格

我設法創建了用於人類形式的技能的複選框,但我無法確定如何創建可以更改human_skills表中的「for_work」布爾值的表單輸入。

所以我的目標是當用戶創建一個新的或編輯人類時,他們可以選擇技能並確定技能是否適合工作(布爾值)。

非常感謝!

Here is my Human form code 

    = semantic_form_for @human do |f| 
    = f.input :name 
    = f.input :skills , :as => :check_boxes, 

數據庫設計

技能 - ID,名稱

human_skills - ID,skills_id,human_id,for_work

人類 - ID,名稱

這是我的mod E1碼:

class Human < ActiveRecord::Base 
    has_many :human_skills; 
    has_many :skills, :through => :human_skills 

class HumanSkill< ActiveRecord::Base 
    belongs_to :human_skills; 
    belongs_to :human; 

class Skill < ActiveRecord::Base 
    has_many :human_skills; 
    has_many :human, :through => :human_skills 

回答

1

好了,你需要調整你的模型一點點地讓人類創造的技能,然後用fields_for讓助手的form_for知道它是另一種模式。

class Human < ActiveRecord::Base 
    has_many :human_skills; 
    has_many :skills, :through => :human_skills 

    accepts_nested_attributes_for :skills 

class HumanSkill< ActiveRecord::Base 
    belongs_to :human_skills; 
    belongs_to :human; 

class Skill < ActiveRecord::Base 
    has_many :human_skills; 
    has_many :human, :through => :human_skills 

和形式

= semantic_form_for @human do |f| 
    = f.input :name 
    = fields_for @human.skills do |h_skills| 
     = h_skills.checkbox :skills 

資源退房回答你的問題:接受嵌套屬性= Accepts_nested_attributes_for字段對於文檔:Fields_for 嵌套表單視頻