3

私のアプリでは、ユーザーが招待状を送信できるように取り組んでいます。招待状にはトークンがあります。そして、メールでは、パスにトークンが含まれているサインアップページにリンクしています。メーラーのコントローラーで使用しているもの:

new_user_registration_url(@invitation.token)

私がライアンベイツがこのrailscastでするのを見たように。しかし、次の形式を出力しているようです。

http://localhost:3000/signup.4a4aebcde29738a39c7f447f58817e49cf9b4cf4

なぜ「。」があるのですか。「/」の代わりに?

アップデート:

私はデバイスを使用しています。関連するルートは次のとおりです。私はこれらについて自信がありません。私はそれで少し苦労しましたが、これらはうまくいったようです:

  devise_scope :user do
    get '/signup/:invitation_token' => "registrations#new", :as => :new_user_registration
  end
  devise_for :users, :controllers => { :registrations => "registrations"}, :skip => [:registrations]
  as :user do
    get '/users/cancel' => 'devise/registrations#cancel', :as => :cancel_user_registration
    post '/users' => 'devise/registrations#create', :as => :user_registration
    get '/signup' => 'registrations#new', :as => :new_user_registration
    get '/users/edit' => 'devise/registrations#edit', :as => :edit_user_registration
    put '/users' => 'devise/registrations#update'
    delete '/users' => 'devise/registrations#destroy'
  end
4

2 に答える 2

3

わかりroutes.rbにくいですが、作者は次のようなものを持っているようです:

#in routes.rb
get 'signup' => 'controller#action', as: :new_user_registration

しかし、持っている必要があります:

get 'signup/:token' => 'controller#action', as: :new_user_registration

チェック中:

# in console
app.new_user_registration_path('ToKeN') # => "/signup/ToKeN"
于 2012-04-23T07:50:45.607 に答える
0

パス ヘルパーに文字列または記号を引数として渡すと、. として解釈されると思いますformat。次のようなことを試してください。

new_user_registration_url(:token => @invitation.token)

また

new_user_registration_url + "/" + @invitation.token
于 2012-04-23T07:43:02.360 に答える