Ruby on rails Rails 4.0验证

Ruby on rails Rails 4.0验证,ruby-on-rails,verify,Ruby On Rails,Verify,在旧应用程序的TrackerController中,rails 4中不推荐使用这种结构 verify :method => :post, :only => [ :destroy, :create, :update ], :redirect_to => { :action => :calendar } 我想这就是routes.rb中验证的转换方式 post 'destroy' => 'tracker#calendar' post 'create' =&

在旧应用程序的TrackerController中,rails 4中不推荐使用这种结构

verify :method => :post, :only => [ :destroy, :create, :update ],
       :redirect_to => { :action => :calendar }
我想这就是routes.rb中验证的转换方式

post 'destroy' => 'tracker#calendar'
post 'create' => 'tracker#calendar'
post 'update' => 'tracker#calendar'
但TrackerController中没有销毁、创建或更新操作

下一行有更多的验证

verify :session => :loggedin_user_id, :redirect_to => "/login"
verify :session => :selected_user_id, :redirect_to => "/users"
verify :session => :privileged_user,  :only => [:unlock, :destroy_allowance, :acknowledge], :redirect_to => "/Tracker"
挖掘,我想这将是如何上述将被重新编写

before_action :require_login, require_user

def require_login
  unless session[:loggedin_user_id?]
    redirect_to '/login'
  end
end

def require_user
  unless session[:selected_user_id?]
    redirect_to '/users'
  end
end
但随后还需要用户执行

您将如何重新构建这些验证


谢谢

你的问题不是很清楚。你能澄清一下吗

也就是说,如果
require\u login
为true(无
session[loggedin\u user\u id?]
),它将短路,并且
require\u user
将不会运行

至于路线,这取决于你想怎么做。正确的方法是让它安静。例如:

resources :calendars # This defines [:index, :show, :new, :create, :edit, :update]
如果您不想要所有这些:

resources :calendars, only: [:index, :show, :whatever_you_want]
这将自动设置以下路线:

get :index
get :show
get :new
get :edit
post :create
put :update
delete :destroy
这将为您提供以下帮助,您可以在链接和表单中使用这些帮助

calendars_path
new_calendar_path
calendar_path(:id) # delete, put, post

我的一般问题实际上是如何重构验证,使系统与rails 4的行为相同。那么,当前代码的问题是什么?发生了什么导致其行为不同?另外,
require\u user
应该做什么?我不知道我问的问题是否正确。我只是在学习rails,这个应用程序是很久以前开发的。我试着让它运行rails 4.ok。验证:method=>:post,:only=>[:destroy,:create,:update],:redirect_to=>{:action=>:calendar}在routes.rb中以这种方式构造它是否正确?发布‘销毁’=>‘跟踪器#日历’发布‘创建’=>‘跟踪器#日历’发布‘更新’=>‘跟踪器#日历’不知道用户应该做什么。我只是根据我对verify:session=>:selected\u user\u id,:redirect\u to=>“/users”的理解进行猜测