从 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 路由的主要内容,如果未能解决你的问题,请参考以下文章

从 Rails 6 中的 bin/rails 路由中省略操作邮箱、活动存储和导体路由?

rails 3.1资产管道路由错误

Rails 3 link_to 路由(编辑)嵌套资源

rails_3_question :as => 为啥在设置 slug 后我的 /posts/new 路由到 posts/show

要映射到 rails 4 中的自定义路径的资源路由

从 Rails 6 中删除 ActiveStorage 路由