列错误地从 HSTORE 返回密钥
Column mistakenly returning the key from HSTORE
好的,我这里有一个奇怪的。
在 Rails 4.0.13 应用程序中,我添加了一个模型:
store_accessor :transcoding_meta, :state
查看模型(SongVersion)的架构,transcoding_meta
的类型确实是hstore
。
注意,SongVersion上还有一个state
列,是字符串列。
s = SongVersion.ready.last
s.transcoding_meta
=> {"state"=>"finished"}
s.state
=> "finished"
实际上,数据库中的状态列按预期保存为 "active"
。
为什么 Rails 被绊倒了?我真的不能拥有与现有列同名的 hstore
键吗?看来它应该知道差异。
.store_accessor
是defines accessors for hstore fields的宏。由于它在 class 体内被调用,生成的访问器会覆盖 ActiveRecord 默认提供的数据库列的访问器。看起来您不能在模型中使用同名的存储字段和列。
好的,我这里有一个奇怪的。 在 Rails 4.0.13 应用程序中,我添加了一个模型:
store_accessor :transcoding_meta, :state
查看模型(SongVersion)的架构,transcoding_meta
的类型确实是hstore
。
注意,SongVersion上还有一个state
列,是字符串列。
s = SongVersion.ready.last
s.transcoding_meta
=> {"state"=>"finished"}
s.state
=> "finished"
实际上,数据库中的状态列按预期保存为 "active"
。
为什么 Rails 被绊倒了?我真的不能拥有与现有列同名的 hstore
键吗?看来它应该知道差异。
.store_accessor
是defines accessors for hstore fields的宏。由于它在 class 体内被调用,生成的访问器会覆盖 ActiveRecord 默认提供的数据库列的访问器。看起来您不能在模型中使用同名的存储字段和列。