Je suis relativement nouveau sur Rails et un peu surpris ce n'est pas un comportement configurable ... du moins pas celui que j'ai pu trouver pour le moment?!? J'aurais pensé que 99% des formulaires bénéficieraient de blancs de tous les champs string
& text
?!? J'imagine que je me trompe ...Rails 3 strip whitespace before_validation sur tous les formulaires
Peu importe, je suis à la recherche d'un moyen DRY de supprimer tous les espaces des champs de formulaire (de type: string &: text) dans une application Rails 3.
Les vues ont des aides qui sont automatiquement référencés (inclus?) Et disponibles pour chaque vue ... mais les modèles ne semblent pas avoir une telle chose?!? Ou ils le font?
donc actuellement je faire ce qui suit qui premiernécessite et alorscomprend le whitespace_helper (aka WhitespaceHelper). mais cela ne semble toujours pas très sec pour moi, mais ça marche ...
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
Je suppose que je suis Vous recherchez une méthode (DRY) unique (classe?) pour mettre quelque part (lib/
?) qui prendrait une liste de paramètres (ou d'attributs) et supprimerait les espaces (.strip!
?) de chaque attribut sans nom spécifique.
double possible de [est-il une bande ignée à utiliser sur tous: params lors de la création d'un nouveau modèle dans Rails] (http://stackoverflow.com/questions/4272028/is-there-a- dry-way-to-use-strip-on-all-params-lors de la création d'un nouveau modèle-dans-rails) –
Vous pouvez le mettre dans une aide et l'inclure dans votre modèle –
Merci, mais cela ne semble que pour travailler si d'abord 'require whitespace_helper' et ensuite' inclure WhitespaceHelper' dans le même fichier. Comment est ce DRY? Semble redondant ... quelqu'un peut-il expliquer? – Meltemi