【发布时间】:2014-02-17 04:12:26
【问题描述】:
我想知道是否有办法设置一个虚拟属性,以便它可以处理多个字段/变量。
基本上,我的模型中有几个不同的整数列(收入、税收),对于每个列,我需要检查表单何时提交,并删除非法字符,我通过设置虚拟属性和使用tr 去除字符。
def flexible_income
income
end
def flexible_income=(income)
self.income = income.tr('$ ,', '') unless income.blank?
end
然后我在控制器中设置强参数:
params.required(:tax).permit(:flexible_income, :flexible_taxes)
问题是我有很多字段(不仅仅是我上面列出的两个),所以对于每个字段,(其中许多只需要检查完全相同的非法字符)我必须使用一个新的virtual 属性,基本上只是重复相同的代码:
def flexible_taxes
taxes
end
def flexible_taxes=(taxes)
self.taxes = taxes.tr('$ ,', '') unless taxes.blank?
end
有没有办法为许多不同的字段设置一个共同的共享属性,同时仍然能够设置强参数?
【问题讨论】:
标签: ruby-on-rails ruby virtual-attribute