Создать форму для доступа к отношениям в RoR 3
Это своего рода эволюция моего предыдущего вопроса (хотя я сильно изменился, в том числе названия моделей, так что решил, что лучше создать другую ветку)... и природа вопроса также изменилась..
В настоящее время я пытаюсь создать форму для функции @dot2.link!(@ Dot)
Функция отлично работает в консоли.
Вот информация о моделях / контроллерах (я старался, чтобы она была минимальной):
class User < ActiveRecord::Base
has_many :dots, :dependent => :destroy
....
end
точка
class Dot < ActiveRecord::Base
belongs_to :user
has_many :linkages
...
def link!(new_dot)
linkages.create!(:end_id => new_dot.id)
end
...
end
Взаимосвязи:
class LinkagesController < ApplicationController
...
def create
@dot = current_user.dots.find(params[:linkages][:end_id])
@dot2 = Dot.find(params[:id])
@dot2.link!(@dot)
end
Связи миграции:
class CreateLinkages < ActiveRecord::Migration
def self.up
create_table :linkages do |t|
t.integer :start_id
t.integer :end_id
t.timestamps
end
add_index :linkages, :start_id
add_index :linkages, :end_id
add_index :linkages, [:start_id, :end_id], :unique => true
end
...
end
Теперь в консоли, если я делаю
User.first.dots.first.link!(User.second.dots.second)
все отлично работает
Как бы я создать форму для него (используя только dot_id) в качестве ввода??
Спасибо!
1 ответ
Решение
Посмотрите помощник формы collection_select. Он отображает ассоциацию, как вам нравится, по умолчанию - Selectbox.