2017-09-06 81 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'作爲某事」) 謝謝! –