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 フォーム ヘルパーを調べます。好きなように関連付けをレンダリングします。デフォルトは Selectbox です。

于 2011-09-06T06:36:21.803 に答える