这真让我抓狂!我有两个模型Lion
和Cheetah
. 两者都继承自Wildcat
.
class Wildcat < ActiveRecord::Base; end
class Lion < Wildcat; end
class Cheetah < Wildcat; end
这里使用 STI。
它们都通过控制器进行处理WildcatsController
。在那里,我有一个从 the和所有其他东西中before_filer
获取wildcat 以使用正确的类。type
params[:type]
在我的routes.rb
中,我创建了以下路线:
resources :lions, controller: 'wildcats', type: 'Lion'
resources :cheetahs, controller: 'wildcats', type: 'Cheetah'
如果我现在想使用从路线(lions_path
、lion_path
、new_lion_path
等)中获得的路径助手,那么一切都按预期工作,除了show
和new
路径。例如lions_path
返回路径/lions
。new
路径/lions/new?type=Lion
返回。与show
路径相同。当我尝试进入/lions/new
我的根域时,它会在后台正确添加类型参数。
所以,我的问题是,如果我使用路径帮助器,为什么 Rails 会将type
参数添加到 url?为什么只为new
and show
?
我正在使用全新的 Rails 应用程序运行带有 Ruby 2.0 的 Rails 4.0.0。