Jos*_*ter 3 ruby symbols ruby-on-rails constants ruby-on-rails-3
简单的问题,我有点惊讶,Rails已经没有更好的处理.
我试图params用这个except!()方法从许多Rails API控制器中清除掉一些多余的属性,如下所示:
params.except!( :format, :api_key, :controller, :action, :updated_at, :created_at )
Run Code Online (Sandbox Code Playgroud)
因为这些属性在许多API端点上是相同的,所以我想将它们存储Constant在API中BaseController,如下所示:
PARAMS_TO_SCRUB = [ :format, :api_key, :controller, :action, :updated_at, :created_at ]
params.except!( PARAMS_TO_SCRUB ) # => Doesn't work.
Run Code Online (Sandbox Code Playgroud)
但该except!()方法只接受一个键的splat,因此没有任何属性被过滤:
# File activesupport/lib/active_support/core_ext/hash/except.rb, line 11
def except!(*keys)
keys.each { |key| delete(key) }
self
end
Run Code Online (Sandbox Code Playgroud)
我现在设置的工作是创建一个方法,用相应的BaseController方式擦除params键,如下所示:
def scrub_params
params.except!( :format, :api_key, :controller, :action, :updated_at, :created_at )
end
Run Code Online (Sandbox Code Playgroud)
有没有办法存储像这样的符号列表?
zis*_*she 10
*在数组变量之前添加:
PARAMS_TO_SCRUB = [ :format, :api_key, :controller, :action, :updated_at, :created_at ]
params.except!( *PARAMS_TO_SCRUB )
Run Code Online (Sandbox Code Playgroud)
因此,该方法将更改为:
def scrub_params ex_arr
params.except! *ex_arr
end
Run Code Online (Sandbox Code Playgroud)
或者一些全局或类变量.
| 归档时间: |
|
| 查看次数: |
1774 次 |
| 最近记录: |