我有一个带有用户控制器的应用程序,我希望将它作为我的路由中的顶级路径,例如:
get ':id' => 'users#show', as: :user_profile
我的to_param
方法User
是:
def to_param
self.username
end
因此,例如,当您点击“/rodrigo”时,它将查找User
用户名为“rodrigo”的对象。到现在为止还挺好。
但我也有一些静态页面,我也想拥有顶级路径,例如 about、terms、
controller :home do
get 'about', to: :about, as: 'about'
get 'help', to: :help, as: 'help'
get 'terms', to: :terms, as: 'terms'
get 'privacy', to: :privacy, as: 'privacy'
end
发生的情况是,当我尝试访问这些静态页面中的任何一个时,我得到:
NoMethodError in Users#show
Showing /Users/rodrigovieira/Code/golaco/app/views/users/show.html.erb where line #1 raised:
undefined method `name' for nil:NilClass
另外,我的users#show
路由是在静态页面路由之前定义的routes.rb
。
也就是说,Rails 认为我在谈论用户对象。我该如何规避这个问题?
我很确定这是可能的。我很感激任何帮助。