在Rails中选择基于路由的模型

时间:2013-09-03 21:03:16

标签: ruby-on-rails ruby-on-rails-3 polymorphic-associations rails-routing

我有一个多态模型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')以及确定discussionable_type。我会假设我可以解析URL,但它看起来并不干净。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

根据您的路线,您应该params[:program_id]params[:specialty_id](或类似)。

这将告诉您使用什么。