从 Rails 2 到 Rails 3 路由

Posted

技术标签:

【中文标题】从 Rails 2 到 Rails 3 路由【英文标题】:To Rails 3 Routing from Rails 2 【发布时间】:2011-08-12 19:15:01 【问题描述】:

我正在按照本教程发送激活电子邮件:

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:

get 'activate/:index' => 'activations#create', :as => 'activate'

或用于 POST

post 'activate/:index' => 'activations#create', :as => 'activate'

【讨论】:

以上是关于从 Rails 2 到 Rails 3 路由的主要内容,如果未能解决你的问题,请参考以下文章