【发布时间】:2012-10-25 18:01:48
【问题描述】:
我有一个带有虚拟属性的模型:
attr_accessible :published_at
def published_at_text
I18n.localize(published_at, format: :long_no_day_with_seconds) if published_at
end
def published_at_text=(text)
self.published_at = Chronic.parse(text)
end
这在单元测试中可以正常工作,但在视图中更改了 published_at_text 字段时不会保存。我试过使用attr_accessible :published_at_text,并将published_at_will_change! 添加到setter 方法中,但我无法让它工作。
development.log 显示更改后的值 published_at_text 正在被传入,但在 setter 中添加对 Rails.logger 的调用似乎表明它甚至没有被调用。
我在这里错过了什么?
【问题讨论】:
-
恕我直言,I18n 逻辑应该在视图中
-
所以你最好先调用setter。你如何更新属性?
标签: ruby-on-rails ruby-on-rails-3