引用嵌套资源

时间:2014-05-15 03:22:50

标签: ruby-on-rails ruby ruby-on-rails-4 haml

我有一个嵌套资源:

  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)

为什么?

3 个答案:

答案 0 :(得分:0)

路由文件中的resources指令只会为您的控制器创建默认路由。

#index
#new
#create
#show
#edit
#update
#destroy

如果你想添加自定义路线,你必须这样声明它们:

resources :res1 do
  resources :res2 do
    get :my_action
  end
end

答案 1 :(得分:0)

您可以对指向actioncontroller的特定路线进行硬编码:

get '/pathname', to: 'controller_name#my_action'

答案 2 :(得分:0)

尝试运行rake routes并查看您获得的操作,尝试在您的视图中应用

get 'my_action' => "res2#my_action"

然后写

:url => my_action_path
相关问题