【发布时间】:2013-09-28 14:06:06
【问题描述】:
这快把我逼疯了!我有两个型号Lion 和Cheetah。两者都继承自Wildcat。
class Wildcat < ActiveRecord::Base; end
class Lion < Wildcat; end
class Cheetah < Wildcat; end
这里使用 STI。
它们都通过控制器WildcatsController 进行处理。在那里,我有一个before_filer 可以从params[:type] 和所有其他东西中获取wildcat 的type 以使用正确的类。
在我的routes.rb 中,我创建了以下路线:
resources :lions, controller: 'wildcats', type: 'Lion'
resources :cheetahs, controller: 'wildcats', type: 'Cheetah'
如果我现在想使用从路由(lions_path、lion_path、new_lion_path 等)获得的路径助手,那么除了 show 和 @ 之外,一切都按预期工作987654335@ 路径。例如lions_path 返回路径/lions。 new 路径返回 /lions/new?type=Lion。与show 路径相同。当我尝试在我的根域中输入 /lions/new 时,它会在后台正确添加类型参数。
所以,我的问题是,如果我使用路径助手,为什么 Rails 会在 url 中添加 type 参数?为什么只针对new 和show?
我正在使用全新的 Rails 应用程序运行带有 Ruby 2.0 的 Rails 4.0.0。
【问题讨论】:
标签: ruby-on-rails ruby routes ruby-on-rails-4 sti