如何翻译这个rails"验证"

时间:2013-07-19 22:10:31

标签: ruby-on-rails

由于已弃用验证:

  verify :method => :get, :only => [ :logout, :index ],
         :redirect_to => { :action => :index }

  verify :method => :post, :only => [ :login ],
         :redirect_to => { :action => :index }

档案说,在过滤之前使用,如何在过滤之前将其翻译成?

其他档案说,如果您使用REST路由,则不需要验证或before_filter。那时我的路线是什么样的?目前它是

Get ‘login’ => ‘login#login’

1 个答案:

答案 0 :(得分:0)

您没有告诉我们您使用哪些路由器。我想这是用户,所以翻译应该是:

resources :users, only: [:index] do
    collection do
        # Should be delete, not get
        get  'logout', to: redirect('/index_or_whatever_you_want')
        post 'login',  to: redirect('/same_as_before')
    end
end

澄清控制器名称

后更新
get  'logout' => 'login#index'
post 'login', => 'logout#index'

请注意,您肯定以这种方式忽略了“RESTful路线”中的要点。这些行应放在config/routes.rb文件

注意到错字

后更新

抱歉,我刚注意到我交换了这两个动作,这就是为什么之前的代码在无限循环中解决的原因,你应该使用它:

get  'logout' => 'login#index'
post 'login', => 'login#index'