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

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

Используя модель «Работа», я пытаюсь сохранить данные в таблице навыков. Что-то похожее на этот http://railscasts.com/episodes/17-habtm-checkboxes-revised. Не могли бы вы помочь.

ИЗМЕНИТЬ

Форма

<%= 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 %>

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

0
Benjamin 28 Янв 2013 в 14:21
Привет, Везу, если вы можете четко объяснить, что вам нужно, это поможет вам быстро получить ответ. Можете ли вы также поместить код для формы, которую вы используете для сохранения данных?
 – 
abhijit
28 Янв 2013 в 14:26
Привет @abhi я добавил добавил форму.
 – 
Benjamin
28 Янв 2013 в 14:38

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>
1
Benjamin 28 Янв 2013 в 16:09
Каковы модельные ассоциации?
 – 
markhorrocks
12 Авг 2013 в 12:51
Возможно, вы захотите прочитать здесь больше. guides.rubyonrails.org/association_basics.html
 – 
Benjamin
12 Авг 2013 в 16:13