我有一个嵌套资源:
resources :res1 do
resources :res2
end
我在res2中有自定义操作:
def my_action
end
未出现在预先生成的路径列表中(没有res1_res2_my_action_url
url)。我想使用控制器和操作表示法来引用my_action
,但以下内容不起作用:
url_for(controller: [:res1, :res2], action: :my_action)
为什么?
答案 0 :(得分:0)
路由文件中的resources
指令只会为您的控制器创建默认路由。
#index
#new
#create
#show
#edit
#update
#destroy
如果你想添加自定义路线,你必须这样声明它们:
resources :res1 do
resources :res2 do
get :my_action
end
end
答案 1 :(得分:0)
您可以对指向action
和controller
的特定路线进行硬编码:
get '/pathname', to: 'controller_name#my_action'
答案 2 :(得分:0)
尝试运行rake routes
并查看您获得的操作,尝试在您的视图中应用
get 'my_action' => "res2#my_action"
然后写
:url => my_action_path