如何设置带有令牌作为查询字符串的路由?

时间:2013-06-17 05:26:46

标签: ruby-on-rails routes

我正在使用设计并尝试使用设计注册页面的令牌代码,我知道我有一些设置链接的路由问题。链接看起来像这样

http://localhost:3000/users/sign_up.asdfsdfasdffffffffffffffasdfasdf

查询字符串之间的一个点,它不起作用。

我的routes.rb是这个

    devise_for :users ,:controllers => { :registrations => "registrations" } do
        #get "/register", :to => "devise/registrations#new"
          get 'users/sign_up/:invitation_token' => "registrations#new", :as =>        :reg_with_code
      end

请帮我设置一个与之间斜杠的正确链接。

这里可能是rake路线

    invitations GET    /invitations(.:format)                     invitations#index
                     POST   /invitations(.:format)                          invitations#create
      new_invitation GET    /invitations/new(.:format)                 invitations#new
     edit_invitation GET    /invitations/:id/edit(.:format)            invitations#edit
          invitation GET    /invitations/:id(.:format)                 invitations#show
                     PUT    /invitations/:id(.:format)                   invitations#update
                     DELETE /invitations/:id(.:format)               
    invitations#destroy
           reg_with_code GET    /users/sign_up/:invitation_token(.:format)    registrations#new
         new_user_session GET    /users/sign_in(.:format)                      devise/sessions#new
            user_session POST   /users/sign_in(.:format)                      devise/sessions#create
    destroy_user_session DELETE /users/sign_out(.:format)                  devise/sessions#destroy
           user_password POST   /users/password(.:format)                  devise/passwords#create
       new_user_password GET    /users/password/new(.:format)              devise/passwords#new
      edit_user_password GET    /users/password/edit(.:format)             devise/passwords#edit
                     PUT    /users/password(.:format)                  devise/passwords#update
 cancel_user_registration GET    /users/cancel(.:format)                    registrations#cancel
       user_registration POST   /users(.:format)                           registrations#create
    new_user_registration GET    /users/sign_up(.:format)                   registrations#new
   edit_user_registration GET    /users/edit(.:format)                      registrations#edit
                     PUT    /users(.:format)                           registrations#update
                     DELETE /users(.:format)                           registrations#destroy
users GET    /users(.:format)                           users#index
                     POST   /users(.:format)                           users#create
               new_user GET    /users/new(.:format)                       users#new
              edit_user GET    /users/:id/edit(.:format)                  users#edit
                user GET    /users/:id(.:format)                       users#show
                     PUT    /users/:id(.:format)                       users#update
                     DELETE /users/:id(.:format)                       users#destroy
                root        /                                          home#index

2 个答案:

答案 0 :(得分:0)

在电子邮件模板中,将令牌链接更改为

<%= link_to "Sign Up", reg_with_code_path(@token) %>

因为您在:as => :reg_with_code文件中添加了routes.rb

答案 1 :(得分:0)

你可以试试这个:

reg_with_code_path(invitation_token: @token)