1

私はモンゴイドクラスを持っているとしましょう

Class User
    include Mongoid::Document
    field :username, type: String
    field :age, type: Integer

    before_save :remove_whitespace

    def remove_whitespace
        self.username.strip!
        self.age.strip!
    end
end

メソッドremove_whitespaceで; 各フィールドを個別に入力する代わりに、ブロックと反復子を使用してすべてのフィールドを反復処理してそれらを取り除くより良い方法はありますか ( self.username.strip!)? 私のクラスには約 15 のフィールドがあり、問題に対するエレガントな解決策を探していました。

4

1 に答える 1

8

方法はありませんattributesか?

attributes.each {|attr| attr.strip!}

また

attributes.each do |attr_name, value|
  write_attribute(attr_name, value.strip)
end
于 2012-10-06T00:04:19.597 に答える