在routes.rb中引用了一個嵌套的資源編輯路徑:生成多個模型
resources :cars do
resources :reviews
end
resources :motorcycles do
resources :reviews
end
在ReviewsController:
before_filter :find_parent
def show
@review = Review.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @review }
end
end
def edit
@review = Review.find(params[:id])
end
# ...
def find_parent
@parent = nil
if params[:car_id]
@parent = Car.find(params[:car_id])
elsif params[:motorcycle_id]
@parent = Motorcycle.find(params[:motorcycle_id])
end
end
生成的「秀」鏈接,評論簡直是(本作品):
= link_to "Show", [@parent, @review]
同樣我想引用審查的通用編輯路徑,像(這是行不通的):
= link_to "Edit", [@parent, @review], :action => 'edit'
有沒有人知道這是可能的,或者如果不是,這可能如何實現?
事實證明,我正在尋找能與URL幫手「edit_polymorphic_path」中找到了答案(見:HTTP ://rubydoc.info/docs/rails/3.0.0/ActionDispatch/Routing/PolymorphicRoutes)。爲了得到我在上面嘗試的鏈接,我可以用下面的代碼完成這個工作:edit_polymorphic_path([@ parent,@review]) – 2011-05-31 00:56:41