Флажки HABTM с использованием гема простой формы

У меня есть три модели, и я пытаюсь сохранить их в третьей таблице, используя простые формы и флажки.

class Work < ActiveRecord::Base
    has_many :skills, through: :skillships
end

Вторая модель

class Skill < ActiveRecord::Base
   has_many :works, through: :skillships
end

Третий

class Skillship < ActiveRecord::Base
  belongs_to :work
  belongs_to :skill
end

Используя рабочую модель, я пытаюсь сохранить данные в таблице навыков. Что-то похожее на это . Не могли бы вы помочь?

ИЗМЕНИТЬ

Форма

<%= simple_form_for(@work) do |f| %>
  <%= f.error_notification %>

<div class="form-inputs">

    <%= f.input :title, :label => 'Project Title' %>
    <%= f.input :excerpt, :as => :text %>

   <fieldset>
   <legend>Skills Used </legend> 
      Would like to check the skills i used here.
   </fieldset>


  </div>

  <div class="form-actions">
    <%= f.button :submit %>
  </div>
<% end %>

Я попытался..

<%= hidden_field_tag "work[skill_ids][]", nil %>
<% Skill.all.each do |skill| %>
  <%= check_box_tag "work[skill_ids][]", skill.id, @work.skill_ids.include?(skill.id), id: dom_id(skill) %>
  <%= label_tag dom_id(skill), skill.title %><br>
<% end %>

Причина, по которой я это делаю, заключается в том, что в работе может использоваться множество навыков.


person Benjamin    schedule 28.01.2013    source источник
comment
Привет, Везу, если вы сможете четко объяснить свою потребность, это поможет вам быстро получить ответ. Можете ли вы также указать код формы, которую вы используете для сохранения данных?   -  person abhijit    schedule 28.01.2013
comment
привет @abhi Я добавил добавил форму.   -  person Benjamin    schedule 28.01.2013


Ответы (1)


Я собирался об этом неправильно. Таблица соединений решила проблему.

rails g migration create_skills_works_table

Затем

class CreateSkillsWorksTable < ActiveRecord::Migration
  def self.up
    create_table :skills_works, :id => false do |t|
        t.references :skill
        t.references :work
   end

    add_index :skills_works, [:skill_id, :work_id]
    add_index :skills_works, [:work_id, :skill_id]

  end

  def self.down
    drop_table :skills_works
  end

end

Использование простой формы в рабочем представлении.

<fieldset>
   <legend>Skills Used </legend> 
        <%= f.association :skills %>
</fieldset>
person Benjamin    schedule 28.01.2013
comment
Каковы модельные ассоциации? - person markhorrocks; 12.08.2013
comment
@markhorrocks вы можете прочитать больше здесь. guides.rubyonrails.org/association_basics.html - person Benjamin; 12.08.2013