Выбор модели на основе маршрута в 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]
(или так).
Это скажет вам, что использовать.