lat*_*lip 5 ruby ruby-on-rails
我很高兴在Rails模型上使用虚拟属性,如果它们是字符串,但我也想使用其他类型的属性,如日期或布尔值,以便我可以使用像date_select这样的帮助器来设置虚拟属性.
有这么好的方法吗?
就目前而言,在虚拟属性上使用date_select助手会引发:
1 error(s) on assignment of multiparameter attributes
Run Code Online (Sandbox Code Playgroud)
如果我想要一个布尔属性,我最终会得到@v_attribute = "true",而不是@v_attr = true.
我找到了一个似乎有用的例子:
class MyModel
#virtual attribute
attr_accessor :v_date_field
attr_accessible :v_date_field
columns_hash["virtual_date_field"] = ActiveRecord::ConnectionAdapters::Column.new("vi_date_field", nil, "date")
end
Run Code Online (Sandbox Code Playgroud)
但我真的不知道它为什么会起作用,它是否有任何副作用,而且看起来像是一个黑客.
虚拟日期/时间属性问题是Rails中的一个已知问题:https://rails.lighthouseapp.com/projects/8994/tickets/2675-support-for-multiparameter-attribute-assignment-on-virtual-attribute-writers
看起来您的解决方案是当前修复它的最佳选择。
| 归档时间: |
|
| 查看次数: |
1016 次 |
| 最近记录: |