Создать форму для доступа к отношениям в 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.

Другие вопросы по тегам