У меня есть три модели, и я пытаюсь сохранить на третьей таблице, используя драгоценный камень простой формы и флажки.
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 %>
Причина, по которой я так делаю, потому что в работе можно задействовать множество навыков.
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>
Похожие вопросы
Новые вопросы
ruby-on-rails-3
Ruby on Rails - это фреймворк для веб-разработки с открытым исходным кодом, написанный на Ruby. Ruby on Rails следует принципу соглашения о конфигурации, освобождая вас от необходимости заново изобретать вещи, чтобы оставаться продуктивными. Используйте этот тег только для вопросов, касающихся Rails 3, а также пометьте эти вопросы [ruby-on-rails].