我对Rails相对较新,有点惊讶这不是一个可配置的行为……至少没有一个我能找到的?!?我原本以为99%的表格都会受益于从所有字符串中删除的空格.文字字段?!?猜猜我错了……
无论如何,我正在寻找一种干燥的方法来从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
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
我想我正在寻找一个单独的(DRY)方法(类?)来放置一个(lib /?),它将获取一个params(或属性)列表并从每个属性w中删除空格(.strip!?) / out被具体命名.
解决方法
创建一个before_validation帮助器,如
here所示
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
原文地址:https://www.jb51.cc/ruby/264729.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。