rails 4.0.0中routes.rb的变化

时间:2013-09-11 07:10:35

标签: ruby-on-rails ruby ruby-on-rails-3 forms routes

我试图通过在rails 4.0.0中创建它来创建一个现有项目。

现有routes.rb包含:

ActionController::Routing::Routes.draw do |map|
  map.root :controller => "homepage", :action  => 'homepage'
  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'
end

我新创建的项目routes.rb

组成
Myapp::Application.routes.draw do
  get "homepage/homepage"  
end 

我在samp / app / views / homepage / homepage.html.erb中有一个表单 我现在应该改变什么? ,为了使路线正确,所以当我点击提交时,它会调用homepage_controller.rb

2 个答案:

答案 0 :(得分:1)

您正在从导轨2升级到导轨4.
这些变化比仅仅改变DSL更加深刻。

您不应再拥有通用:controller/:action/:id路线了 相反,您应该生成resources

Myapp::Application.routes.draw do
  resources :posts
end

这将生成以下路线:

posts     GET    /posts(.:format)                             posts#index
          POST   /posts(.:format)                             posts#create
new_post  GET    /posts/new(.:format)                         posts#new
edit_post GET    /posts/:id/edit(.:format)                    posts#edit
post      GET    /posts/:id(.:format)                         posts#show
          PATCH  /posts/:id(.:format)                         posts#update
          PUT    /posts/:id(.:format)                         posts#update
          DELETE /posts/:id(.:format)                         posts#destroy
自从rails 2以来,

form_for没有改变。所以你可以像以前一样使用它。

请参阅:

答案 1 :(得分:0)

包括此

post "homepage/homepage"

会做我想要的,但它与你在homepage_controller.rb中的代码一起处理表单。请参阅Damien MATHIEU答案中的链接,了解有关升级和路由的更多信息。