0

レールの使用。モデルには次のものがあります。

before_save :strip_tags

private

def strip_tags
  self.name = ActionController::Base.helpers.strip_tags(self.name)
  self.description = ActionController::Base.helpers.strip_tags(self.description)
end

これらの属性を配列に入れてループを実行する以外に、これをリファクタリングするより良い方法は何ですか?

4

2 に答える 2

0

「attribute_normalizer」gem を使用できます。

https://github.com/mdeering/attribute_normalizer

normalize_attributes :name, :description do |v|
  ActionController::Base.helpers.strip_tags(v)  
end
于 2013-03-31T17:03:30.483 に答える
0

属性が設定されているときに、より多くの行と変更を与える次のことを試すことができます(使用してbefore_saveいるため、検証でhtmlタグが必要な場合、これは機能しません)。

def name=(string)
  write_attribute :name, strip_tags(string)
end

def description=(string)
  write_attribute :description, :strip_tags(string)
end

private

def strip_tags(string)
  ActionController::Base.helpers.strip_tags string
end
于 2013-03-31T15:36:39.153 に答える