看哪,一个before_filter
:
class ThingController < ApplicationController
before_filter :check_stuff, :if => proc {Rails.env.production?}
end
在最近的代码审查中,有人问我:"这是否需要proc
才能正常工作?" 答案似乎是'是',但这是一个合理的问题,我本来想通过参考Rails文档或指南或关于使用条件语句与before_filter
(现在是before_action
的别名)的内容来回答它。
我找不到任何相关信息。 Action Controller指南提到了:only
/:except
,但没有提到:if
/:unless
。
如果找不到,那么代码中是否有我可以指向的位置涵盖此内容?它在这里简要提到,但更多地关于如何处理:only
和:except
,而不是:if
或:unless
。
ActiveSupport::Callbacks
实现:http://api.rubyonrails.org/classes/ActiveSupport/Callbacks.htmlActionController对:only
和:except
选项进行了一些规范化处理,以将它们转换为ActiveSupport::Callbacks所期望的:if
和:unless
选项。 - adamesque