0

这是我之前问题的一种演变(尽管我改变了很多,包括模型名称,所以我认为我应该更好地创建另一个线程)..问题的性质也改变了..

目前我正在努力为函数 @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)作为输入?

谢谢!

4

1 回答 1

1

查找 collection_select 表单助手。它呈现您喜欢的关联,默认为选择框。

于 2011-09-06T06:36:21.803 回答