これは私の以前の質問の一種の進化です(ただし、モデル名を含めて多くを変更したため、別のスレッドを作成する必要があると考えました)..そして質問の性質も変更されました..
現在、関数 @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のみを使用して)フォームを作成するにはどうすればよいですか??
ありがとう!