好吧,我这儿有个奇怪的。在Rails 4.0.13应用程序中,我添加了一个模型:
store_accessor :transcoding_meta, :state
从模型(SongVersion)的模式来看,transcoding_meta的类型确实是hstore。
注意,在state上还有一个SongVersion列,它是一个string列。
s = SongVersion.ready.last
s.transcoding_meta
=> {"state"=>"finished"}
s.state
=> "finished"实际上,数据库中的状态列按预期的方式保存为"active"。
为什么铁轨会被绊倒?我真的不能拥有一个与现有列同名的hstore密钥吗?似乎它应该知道区别。
发布于 2018-11-26 23:16:45
.store_accessor是为hstore字段定义访问器。的宏。由于它在类主体中被调用,生成的访问器将覆盖ActiveRecord默认提供的DB列的访问权限。看起来,在模型中不能有同名的存储字段和列。
https://stackoverflow.com/questions/53490127
复制相似问题