Выбор модели на основе маршрута в Rails

У меня полиморфная модель Discussion, Может применяться к Specialty модель и Program модель. Мои маршруты настроены как:

resources :programs, :only => :show do
   resources :discussions, :only => [:show, :create, :destroy, :new]
end

resources :specialties do
   resources :discussions, :only => [:show, :create, :destroy, :new]
end

Итак, новые обсуждения сделаны так:

 /specialties/yyyyy/discussions/new
 /programs/yyyyyy/discussions/new

Проблема в моем discussions_controller.rb файл. У меня есть функция:

def new
  @object = xxxxx.find(params[:id])
end

Как выбрать подходящую модель для формы (например, чтобы заменить "xxxxx") и для определения дискуссионного типа. Я бы предположил, что мог бы разобрать URL, но он не кажется чистым. Есть идеи?

1 ответ

Решение

Учитывая ваши маршруты, вы должны иметь params[:program_id] или же params[:specialty_id] (или так).

Это скажет вам, что использовать.

Другие вопросы по тегам