0

使用 Rails。我在模型中有以下内容:

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

您可以尝试以下方法,它会在设置属性提供更多行和更改(您正在使用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 回答
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 回答