2011-09-06 68 views
0

这是我前一个问题的演变(虽然我改变了很多,包括模型名称,所以我想我应该更好地创建另一个线程)..问题的性质也改变了..创建一个表格访问关系在RoR 3

目前,我努力创建一个表单功能 @ dot2.link!(@点)

该功能可在控制台罚款。

下面是模型/控制器的信息(我试图保持它最小):

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)作为输入?

谢谢!

+0

老兄你在最怪异的应用程序工作过...耶稣有什么点的? – jBeas

+0

Lol))我会发布一个链接,如果它最终解决,我保证..这是一种艺术项目,所以这个词的选择是奇怪的.. – Stpn

回答

1

查找collection_select表单助手。它呈现一个不管你喜欢的关联,默认为一个选择框。

+0

是的,实际上帮助。谢谢。结束使用收集.. – Stpn