RoR多对多的关系和形式

时间:2014-07-01 16:10:11

标签: ruby-on-rails ruby forms collection-select

我坚持这个问题。 关于这个主题的RoR文档非常糟糕。 我不明白collection_select是如何工作的。

我有两种模式:技能和项目。 项目有很多技能,技能有很多项目。

所以这是我的模式:

create_table "projects", force: true do |t|
    t.string   "name"
    t.datetime "created_at"
    t.datetime "updated_at"
end

create_table "projects_skills", id: false, force: true do |t|
    t.integer "project_id"
    t.integer "skill_id"
end

create_table "skills", force: true do |t|
    t.string   "name"
    t.datetime "created_at"
    t.datetime "updated_at"
    t.integer  "mastering"
end

项目模型

class Project < ActiveRecord::Base

    has_and_belongs_to_many :skills

end

技能模型

class Skill < ActiveRecord::Base

    has_and_belongs_to_many :projects

end

还有collection_select

= form_for(instance_variable_get('@' + controller.controller_name.singularize)) do |f|

    .field

        = f.label :skills
        = collection_select(:skills, :id, Skill.all, :id, :name, {:multiple=>true})

    .actions

        = f.submit

选择显示填充良好,但我的数据库中没有任何内容。

也许有人可以在我的代码中看到错误?

由于

0 个答案:

没有答案