如果在Rails 2.3中的routes.rb中将资源映射添加到命名空间,那么如何使link_to(和form_for等)理解它应该获取命名空间的控制器而不是根命名空间中的控制器?
例如…
在routes.rb中有这个:
map.namespace :admin do |admin| admin.resources :opt_in_users end
这在视图中:
<%= link_to @anOptInUser %>
该link_to应该使用link_for_admin_opt_in_user,而是尝试使用link_for_opt_in_user,但失败了.
解决方法
对于命名空间资源,与嵌套资源一样,您可以使用带符号的数组:
link_to 'Click here',[:admin,@opt_in_user]
要么
form_for [:admin,@opt_in_user] do |form| ....