К Rails 3 Маршрутизация из Rails 2

#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'