RESTful form_for с вложенными ресурсами через таблицу соединений - PullRequest
0 голосов
/ 03 сентября 2011

Я пытаюсь создать приложение, в котором есть модель для «Заданий», которую можно связать с моделью «Теги», где ассоциации отслеживаются с помощью таблицы соединений. Я хочу найти, что в форме можно использовать флажки form_for add на основе ресурсов, чтобы позволить пользователю выбирать, с какими тегами связано задание. Список тегов устанавливается администратором, поэтому они не создают новые теги, а создают ассоциации. И я не могу понять, как это сделать. В большинстве примеров используется сценарий блога, где статья has_many комментирует, создает новые комментарии и сильно отличается от того, что я пытаюсь сделать.

Модель:

class Job < ActiveRecord::Base
    has_and_belongs_to_many :tags, :join_table => 'j_map_tags', :class_name => 'Tag', :foreign_key => 'job_id', :association_foreign_key => 'tag_id'
end

class Tag < ActiveRecord::Base
    has_and_belongs_to_many :jobs, :join_table => 'j_map_tags', :class_name => 'Job'
end

class JMapTag < ActiveRecord::Base
    belongs_to :job
    belongs_to :tag
end

Миграция таблицы присоединения:

class CreateJMapTags < ActiveRecord::Migration
    def self.up
        create_table :j_map_tags, :id => false do |t|
            t.column    :job_id,    :integer
            t.column    :tag_id,    :integer
        end
    end

    def self.down
        drop_table :j_map_tags
    end
end

Маршруты:

resources :jobs, :module => 'manager', :constraints => lambda { |request| request.xhr? } do
    resources :tags
end

Еврорадио:

<%= form_for [Job.new], :remote => true do |form| %>
    ...
    <% form.label  ???????? %>
    <% form.check_box  ???????? %>
    ...
<% end %>

Возможно ли это даже через ресурсную форму form_for? Я не смог найти ни одного примера, связанного с этим типом взаимосвязи ресурсов.

1 Ответ

0 голосов
/ 04 сентября 2011

Я думаю, это то, что вам нужно: Флажки HABTM

...