Mel*_*emi 6 validation whitespace ruby-on-rails dry helpers
我对Rails相对较新,有点惊讶这不是一个可配置的行为......至少没有一个我能找到的?!?我本来以为的形式99%的人会从空白受益于所有被修剪string和text领域?!?猜猜我错了......
无论如何,我正在寻找一种干燥的方法来从Rails 3应用程序中的表单字段(类型:string&:text)中删除所有空格.
视图有自动引用(包括?)并可用于每个视图的助手......但模型似乎没有这样的东西?!?或者他们呢?
所以目前我做的是首先 需要的,然后 包括 whitespace_helper(又名WhitespaceHelper).但这对我来说似乎并不是很干,但它有效......
ClassName.rb:
require 'whitespace_helper'
class ClassName < ActiveRecord::Base
include WhitespaceHelper
before_validation :strip_blanks
...
protected
def strip_blanks
self.attributeA.strip!
self.attributeB.strip!
...
end
Run Code Online (Sandbox Code Playgroud)
LIB/whitespace_helper.rb:
module WhitespaceHelper
def strip_whitespace
self.attributes.each_pair do |key, value|
self[key] = value.strip if value.respond_to?('strip')
end
end
Run Code Online (Sandbox Code Playgroud)
我想我正在寻找单个(DRY)方法(类?)来放置某个(lib/?),它将获取一个params(或属性)列表,并.strip! 从每个属性中删除空白(?),而不是具体命名.
创建一个before_validation助手所看到这里
module Trimmer
def trimmed_fields *field_list
before_validation do |model|
field_list.each do |n|
model[n] = model[n].strip if model[n].respond_to?('strip')
end
end
end
end
require 'trimmer'
class ClassName < ActiveRecord::Base
extend Trimmer
trimmed_fields :attributeA, :attributeB
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4957 次 |
| 最近记录: |