Создание пути редактирования для вложенного ресурса, на который ссылаются несколько моделей

В 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'

Кто-нибудь знает, возможно ли это или, если нет, как это можно сделать?

10
задан the_real_one 30 May 2011 в 23:51
поделиться