是否有一种简单的方法可以在Rails中重载数据类型?
例如,将Boolean渲染为:
true #=>
false #=>
或整数:
6 #=> 'six'
10 #=> 'ten'
我希望列名称有http://guides.rubyonrails.org/i18n.html#translations-for-active-record-models之类的东西,列的数据类型会有一些编程方法。
这非常接近https://blog.arkency.com/2016/03/custom-typecasting-with-activerecord-virtus-and-dry-types/。但内置的东西会更好;)
答案 0 :(得分:2)
您可以通过覆盖类to_s
方法来完成此操作,例如:
class TrueClass
def to_s
'foo'
end
end
puts true #=> 'foo'
我不确定这总是一个好主意,但是它是如何做到的:)
对于整数,你需要写一些东西来转换它们,或者使用像numbers_and_words这样的宝石,但上述方法仍然适用。
希望能让你朝着正确的方向前进!如果您有任何疑问,请与我联系。
答案 1 :(得分:1)
是否有一种简单的方法可以在Rails中重载数据类型?
通过渲染助手传递您的数据:
class ApplicationHelper
# "mf" for my_format
def mf(value)
case value
when true
''
when false
''
when Integer
value.to_english_words # or something like that
else
value # unchanged
end
end
end
然后,在视图中。
<%= mf user.approved? %>
<%= mf user.age %>