复选框更新连接表的问题

时间:2016-09-16 10:10:52

标签: ruby-on-rails postgresql ruby-on-rails-4 checkbox jointable

Theres周围很多东西都很相似,但实际上并没有解决这个特殊情况。我想在前言中说我在Rails世界中仍然是新的。

所以我有一个User表和一个Skill表以及相应的模型。

我创建了一个连接表来连接2并在2之间建立HABTM关系。

技能模型

class Skill < ActiveRecord::Base
  has_and_belongs_to_many :users
end

用户模型

class User < ActiveRecord::Base
  has_and_belongs_to_many :skills
end

加入表移民 class CreateJoinTableSkillsUsers&lt; ActiveRecord的::迁移

  def change
    create_join_table :skills, :users do |t|
       t.index [:skill_id, :user_id]
       t.index [:user_id, :skill_id]
    end
  end
end

ADDSKILL METHOD(在技能控制器中)

def addSkill
     @user.id = current_user.id
     @skill.id = Skill.find(params[:id])
     params[:user_id, :skill_id]
     redirect_to user_path
end

相关路线?

put 'skills/addSkill' => 'skills#addSkill'

index.html.erb(技能)

  <% commerceCategory.each do |skill| %>
    <ul>
      <%= button_to skill.title, :method => "addSkill" %>
    </ul>
  <% end %>

提交按钮 <%= submit_tag "Update Skills"%>

基本上我想要:

a)skill.title是自己的复选框(复选框内的名称不在其旁边)

b)点击后,它会通过连接表将该特定技能分配给current_user.id,并重定向到用户显示页面,以显示用户拥有的技能。

我尝试了很多不同的东西,似乎无法使它发挥作用。

我已经阅读了所有有很多通过是优先关联,特别是因为我想最终为每项技能添加不同程度的技能。

非常感谢任何指导!

0 个答案:

没有答案