从 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_question :as => 为啥在设置 slug 后我的 /posts/new 路由到 posts/show