假设我有一个带有整数字段Person
的记录类awesomeness
。
如果我拨打Person.new(:awesomeness => 5)
,则可以正常使用。
如果按预期调用Person.new(:awesomeness => 'five')
,Rails会下注以确定'five'
是一个整数并失败,所以它默认为0
。我可以通过以某种方式拦截哈希和对数据的烦躁来进行干预吗?
ActiveRecord回调中最早的“事件”是before_save
,“5”已成为0
。
我显然可以做这个控制器端,但这似乎是模型中严格属于过滤器的东西。
答案 0 :(得分:2)
我会说这实际上属于控制器。
控制器的工作是解释模型和视图之间的数据和交互。如果模型将字段声明为整数,则只需要模型逻辑来处理以整数形式给出的数据。
我假设这个“五”来自视图,在这种情况下,应该是控制器的工作来正确处理数据,以便模型能够理解它。