簡體   English   中英

Rails從數據庫獲取多個值

[英]Rails get multiple values from db

我正在嘗試從數據庫中將多個值檢索到單個變量中並返回整個內容。 這是我在做什么

my_hash = {
  'name' => 'John'
  'current_location' => 'Sweden'
}

現在,我需要進入數據庫並檢索所有記錄並將它們存儲到單個變量中,然后需要將該變量添加到my_hash中,以便可以返回整個內容。 我該怎么辦?

例:

last_names = Names.where('first_name = ?', 'John').select('last_name').last_name
my_hash.add(last_names)
return my_hash

既然以上都不起作用,有人可以告訴我實現此目標的正確方法嗎?

您是否正在嘗試執行以下操作?

my_hash = {
  'name' => 'John'
  'current_location' => 'Sweden'
}

my_hash['last_names'] = Names.where('first_name = ?', 'John')
  .select('last_name')
  .map { |name| name.last_name } 
# or shorthand version .map(&:last_name)

return my_hash

更新

# get name objects from the database 
# add select as an optimization if desired
last_name_list = Names.where('first_name = ?', 'John')
# get an array of only the last_name fields
last_names = last_name_list.map { |name| name.last_name }
# assign the array to the new hash key 'last_names'
my_hash['last_names'] = last_names

有關地圖上的文檔,請參見http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-map ,請注意,地圖和收集是相同的

另一個例子

names = Names.where('updated_at >= ?', Date.parse('2013-01-01'))

# get an array of 'full names'
full_names = names.map do |name| 
  "#{name.first_name} #{name.last_name}"
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM