class Chair < ActiveRecord::Base
has_many :buildings, :as => :faculty
end
class Department < ActiveRecord::Base
has_many :buildings, :as => :faculty
end
class Building < ActiveRecord::Base
belongs_to :faculty, :polymorphic => true
end
は、私が持っているファイル:がどのようにRails3で、この多型モデルの「所有者」を呼び出すためのルートで
resources :departments do
resources :buildings do
end
resources :chairs do
resources :buildings do
end
は、どのように私は良い方法では部門や椅子のための1つのコントローラで新しい建物を建てることができます。行うには、他の鉄道の方法があり、
def faculty
if params[:department_id]
Department.find(params[:department_id])
elsif params[:chair_id]
Chair.find(params[:chair_id])
end
end
が、私は求めています:application_controllerで
class BuildingsController < ApplicationController
def new
@parent = faculty
@building = @parent.buildings.build
end
end
:私はそれが建物の作成者に確認することを、私は別の有用な関数を作成することができますことを、知っていますそれ? Rails3には、情報を取得するために使用できるメソッドがいくつか存在するかもしれません。誰が、別のファンクションファカルティを実装せずにビルドを作成したいと思うのでしょうか。そこ
アプリケーションコントローラに教員を移動するのはなぜ?それを「建物」に移動します。建物/椅子や建物/部署から考えるようにしてください。そうでない場合、あなたのやり方は最善の方法です。 –