2016-06-11 70 views
-2

我有以下內容的文件:如何在文本中創建特定單詞的哈希?

class Rename < ActiveRecord::Migration 
    def change 
    rename_table :users, :vendors 
    rename_table :places, :venues 

    #There could be loads of similar lines 
    end 
end 

,我需要用以下結構創建哈希:

{ "users" => "vendors", 
    "places" => "venues" } 

我怎樣才能做到這一點?

我可以使用正則表達式與方法掃描/rename_table.:(\S+),\s:(\S+)/已經取需要的話,但它返回

[["users", "vendors"], ["places", "venues"]] 
+0

'{ 「用戶」=> 「供應商」, 「地點」 =>「場所」}'是一個文字,所以你想用這個結構創建一個散列是沒有意義的。這就像說你想創建一個結構爲「cat」的字符串。 –

+0

@CarySwoveland好的。也許我試圖用錯誤的方法來解決我的問題。 –

+0

@CarySwoveland嗯,我會盡力解釋。我需要從文本文件中獲取一對特定的值。例如''用戶「,」供應商「'。之後,我必須轉到另一個目錄,並將名稱爲'users.rb'的文件替換爲'vendors.rb'。我認爲使用哈希將是適當的。 –

回答

1
[["users", "vendors"], ["places", "venues"]].to_h 
=> {"users"=>"vendors", "places"=>"venues"} 
+0

因爲你的數組是一個文字,所以'{「users」=>「vendors」,「places」=>「venues」}'會更簡單。 –

1
Hash[["users", "vendors"], ["places", "venues"]] 
=> {"users"=>"vendors", "places"=>"venues"} 
+0

因爲你的數組是一個文字,所以'{「users」=>「vendors」,「places」=>「venues」}'會更簡單。 –