#ruby-on-rails #routing #actionmailer #activation
#ruby-on-rails #маршруты #actionmailer #активация
Вопрос:
Я следую этому руководству по отправке электронного письма для активации:
http://www.slideshare.net/JamesEdwardGrayII/sending-email-with-rails
Я совершенно уверен, что это было сделано с rails 2, и маршрутизация была немного проблематичной для меня.
routes.rb:
map.activate "activate/:token", :controller => "activations", :action => "create"
позволяет:
activate_url(:token => @user.perishable_token, :host => "localhost:3000")
Так что localhost:3000/:token
URL отправляется пользователю для активации.
Чтобы заставить это работать для rails 3, я попробовал следующее:
match 'activate/:token' => 'activations#create'
match 'activate/:token', :to => 'activations#create'
но activate_url
не работает. Я был бы признателен за некоторую информацию. Спасибо!
Ответ №1:
В вашем routes.rb
добавьте :as => 'activate'
к вашему match
методу, подобному этому:
match 'activate/:token' => 'activations#create', :as => 'activate'
и если вы используете только GET / POST, я бы изменил маршрут на этот:
Для ПОЛУЧЕНИЯ:
get 'activate/:index' => 'activations#create', :as => 'activate'
или для POST
post 'activate/:index' => 'activations#create', :as => 'activate'