Создать форму для доступа к отношениям в RoR 3 - PullRequest
0 голосов
/ 06 сентября 2011

Это своего рода эволюция моего предыдущего вопроса (хотя я сильно изменился, в том числе названия моделей, по которым я решил лучше создать другую ветку) .. и характер вопроса также изменился ..

В настоящее времяЯ изо всех сил пытаюсь создать форму для функции @ 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 Ответ

1 голос
/ 06 сентября 2011

Посмотрите помощник формы collection_select. Он отображает ассоциацию, как вам нравится, по умолчанию - Selectbox.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...