非资源嵌套的命名路由

时间:2014-02-21 16:39:52

标签: ruby-on-rails nested-attributes rails-routing

我正在尝试生成一个链接,供用户点击确认其帐户。我想要这个:

/users/:id/confirm/:code

我的路线文件中有这个:

resources :users do
  member do
    get 'confirm/:confirmation_code', :action => 'confirm'
  end
end

我试过了:

user_confirm_path(@user, @confirmation_code)
confirm_user_path(@confirmation_code, @user)

和其他许多人似乎无法找到正确的人。我想我总是可以自己生成链接网址,但这似乎不是轨道方式。

这是我的佣金路线输出:

rake routes
Prefix Verb   URI Pattern                                     Controller#Action
       GET    /users/:id/confirm/:confirmation_code(.:format) users#confirm

但忽略了我实际上正在寻找的东西

2 个答案:

答案 0 :(得分:1)

我不会马上给出解决方案,但我会给你自己解决问题的钥匙:(“给一个人一条鱼,你喂他一天。教一个人钓鱼你喂他一辈子。“)

您可以运行以下命令列出应用中的所有可用路由以及相应的帮助程序:

rake routes

在我的应用程序中,有很多路线我无法一次看到它们。所以我添加| grep something只选择我需要的部分。在你的情况下,它会是这样的:

rake routes | grep confirm

你最终可能会阅读如下输出:

confirm_user_path GET /users/:id/confirm/:confirmation_code

Google搜索“ rails 4.0.2 url helper ”,第一个链接是Github问题:https://github.com/rails/rails/issues/12751

答案 1 :(得分:0)

我还有另一个类似的问题在这里得到解答:Named routes inserting a . instead of a /

使用相同的答案解决了这个问题。