Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Rails 3中重用自定义RESTful路由的名称_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 在Rails 3中重用自定义RESTful路由的名称

Ruby on rails 在Rails 3中重用自定义RESTful路由的名称,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我想做一件我想象中的事情: resources :users do collection do get 'login', :action => 'login_form' post 'login', :action => 'login' get 'logout' end end 也就是说,我希望两个控制器动作用不同的方法绑定到同一路径。我该怎么做?您应该阅读有关路线的指南: login\u表单操作听起来不是很安静。只是说;) 您需要在第一个匹配项上指

我想做一件我想象中的事情:

resources :users do
  collection do
    get  'login', :action => 'login_form'
    post 'login', :action => 'login'
    get 'logout'
  end
end

也就是说,我希望两个控制器动作用不同的方法绑定到同一路径。我该怎么做?

您应该阅读有关路线的指南:


login\u表单
操作听起来不是很安静。只是说;)

您需要在第一个匹配项上指定get,否则它将同时匹配get和post,并且您将永远不会到达第二个路径。那么,我如何使它更加restful呢?:)@railsdog:噢,我认为match的默认值是
get
,而不是
get
post
。@AlexeiAverchenko:嗯,这取决于你到底想做什么。但是你可以制作一个会话控制器,用户的登录表单动作就是会话新动作(就像Desive一样)。很有趣。。。谢谢你的提示!
resources :users do
    collection do
        match  'login' => "users#login_form", via: :get
        post   'login'
        get 'logout'
    end
end