我想在以下控制器中的少数特定操作中使用一个名为before_filter
的{{1}}:
:realtor_suscriber
我在realtors/registrations_controller.rb
realtors/sessons_controller.rb
pro/messages_controller.rb
pro/users_controller.rb
realtors/registrations_controller.rb
当然,它不适用于其他控制器中的操作(例如pro / messages_controller.rb)
我不想在application_controller.rb中定义realtor_suscriber,因为我有一些其他控制器,他们不需要这个def realtor_suscriber!
....my code here...
end
,我想避免在所有其他控制器中使用before_filter
。
感谢您提前,
F。
答案 0 :(得分:1)
您可以在realtor_suscriber!
中定义ApplicationController
方法并添加
before_filter :realtor_suscriber!
在那些需要它的控制器中。
答案 1 :(得分:0)
您可以在跳过特定控制器的应用程序控制器中定义它
def realtor_suscriber!
if (params[:controller]=="posts" && %w(new edit show).include?(params[:action])) ||
(params[:controller]=="comments" && %w(create update destroy).include?(params[:action])) ||
(params[:controller]=="reviews" && %w(like share tweet).include?(params[:action]))
return # list out all the controller/action pairs which needs to be skipped.
#....your code here...
end
答案 2 :(得分:0)
使用以下
before_filter :realtor_suscriber!, :only => [:abc, :pqr]
#Where abc, pqr are the methods for which you want filter
OR
before_filter :realtor_suscriber!, :except => [:xyz, :rst]
#Where xyz, rst are the methods for which you don't want filter
答案 3 :(得分:0)
这很简单,只需在ApplicationController中定义方法并将其用作子控制器中的过滤器。
子控制器继承自ApplicationController,因此它们始终可以访问此方法。而且您不需要在ApplicationController中定义这样的过滤器。