0

目前我坚持使用我的 ruby​​ on rails 项目。我正在使用导轨 3.2

我设法为人类形式的技能创建复选框,但我不知道如何创建一个可以更改 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

人类- 身份,姓名

这是我的模型代码:

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
4

1 回答 1

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 = Accepts_nested_attributes_for Fields 文档:Fields_for Nested Form video Railscast

于 2012-07-24T13:52:34.283 回答