2017-09-06 42 views
0

我与很多翻译的命名name_translations hstore列的表格:如何采摘hstore键与ActiveRecord的

{ 'en' => 'En name', 'es' => 'Es name', ... } 

它也连载模型store_accessor :name_translations

我需要在name_translations idru关键hstore。我试图Model.select("id, name_translations -> 'ru'"),这里是一个查询AR产生Model Load (0.6ms) SELECT id, name_translations -> 'ru' FROM "models"但产量只有IDS:

[#<Model id: 95>, 
#<Model id: 101>, 
... 

目前,我停在一个有点丑陋的代码:

Model.pluck(:id, :name_translations).map { |id, name| [id, name['ru']] } 

请告诉我一个办法让它更好吗?

+0

您目前拥有的是更好的IMO。 –

+0

@Зелёный那么你的例子工作,但为什么我没有看到在AR输出的东西'?它仍然只有ID –

回答

1

可以在select查询中使用as,例如:

=> result = Model.select("id, name_translations -> 'ru' as something") 
=> result.first.something 

但产量只有IDS:

[#<Model id: 95>, #<Model id: 101>, ...

这是怎么AR的作品,如果你'使用动态属性它从来没有在输出中显示,因为它不是一个真正的列,它是一个别名

+0

我停止了拔#Model.pluck(“id,name_translations - >'ru'作为某事”) 谢谢! –