对于非资源嵌套命名路线(Named route for non resource nesting)

2019-10-19 09:16发布

我试图生成一个链接,用户点击确认他们的帐户。 我想这样的:

/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)

和其他许多人,但似乎无法得到正确的一个。 我想我随时可以生成链接URL自己,但似乎没有轨道的方式。

这就是我的耙路线的输出:

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

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

Answer 1:

我不会给出解决方案的时候了,但我会给你自己解决问题的关键。(”授人以鱼,你可以喂他一天教人以渔,你喂他寿命。“)

您可以运行以下命令列出应用中的所有可用的路线和相应的助手:

rake routes

在我的应用程序,有这么多的路线,我不能看到他们的一次。 所以我添加| grep something | grep something ,只选择我需要的部分。 对你来说,这将是这样的:

rake routes | grep confirm

你最终可能会读取输出,如:

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

谷歌搜索“ 轨4.0.2 URL帮手 ”,第一个链接是Github的问题: https://github.com/rails/rails/issues/12751



Answer 2:

我有另一个类似的问题,这是在这里找到答案了: 命名路由插入。 代替 /

使用这个问题同样的答案来解决它。



文章来源: Named route for non resource nesting