Derzeit verwende ich dies zum Ausstreichen von Leerräumen.möchten Sie aufräumen und ändern Unicode-Formularfelder bei der Verwendung von Schienen Modell in einem trockeneren Weg
class Newsletter < ActiveRecord::Base
before_validation :clean_up_whitespace
end
def clean_up_whitespace
fields_to_strip = ['title','notes']
fields_to_strip.each { |f|
unless self.attributes[f].nil?
self.attributes[f].strip!
end
}
end
Ich möchte etwas ähnliches tun, von MS Word Art von Unicode loszuwerden. Zur Zeit benutze ich:
require 'iconv'
class Newsletter < ActiveRecord::Base
before_validation :clean_up_unicode
end
def clean_up_unicode
unless title.blank?
self.title = Iconv.iconv('ascii//ignore//translit', 'utf-8', self.title).to_s
end
unless notes.blank?
self.notes = Iconv.iconv('ascii//ignore//translit', 'utf-8', self.notes).to_s
end
end
Diese Methode funktioniert, aber nicht sehr trocken, da ich es für 40 einige Formularfelder tun müssen.
hatte ich dachte, dass ich so etwas wie verwenden:
require 'iconv'
class Newsletter < ActiveRecord::Base
before_validation :clean_up_unicode
end
def clean_up_unicode
unicode_fields_to_clean = ['title','notes']
unicode_fields_to_clean.each { |u|
unless self.attributes[u].blank?
self.attributes[u] = Iconv.iconv('ascii//ignore//translit', 'utf-8', attributes[u]).to_s
end
}
end
ich weiß ich bin nicht zu verstehen, etwas mit der Art und Weise dies funktioniert.
wenn ich
self.attributes [u] =
mit
ersetzen setzt some_variable =
ich die richtige Ausgabe an die Konsole zu bekommen. Ich weiß einfach nicht, wie ich diese Variable zurück zum Formular bringen kann.
Wenn es hilft, der Code, der falsch ist, ist self.attributes [u] = Ich weiß nicht, was ich ersetzen soll. Ich hätte gedacht, ich könnte self.VariableNameOfField = verwenden, aber Schienen erkennt nicht die Variable, die direkt so verwendet wird.