2016-06-11 6 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

'{ "ユーザー"=> "ベンダー"、 "場所" を返します=> "venues"} 'はリテラルなので、その構造体でハッシュを作成したいという意味はありません。構造体 '' cat "'で文字列を作成したいと言っているようなものです。 –

+0

@CarySwoveland ok。たぶん私は私の問題を解決するために間違ったアプローチを使用しようとしています。 –

+0

@CarySwovelandさて、私は説明しようとします。テキストファイルから特定の値のペアを取得する必要があります。たとえば、「ユーザー」、「ベンダー」などです。その後、私は別のディレクトリに移動し、 'users.rb'という名前のファイルを' vendors.rb'に置き換えなければなりません。私はハッシュを使うのが適切だろうと思った。 –

答えて

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

あなたの配列はリテラルなので、 '{" users "="ベンダー "、" places "=>"会場 "}'はもっとシンプルになります。 –

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

あなたの配列はリテラルなので、 '{" users "="ベンダー "、" places "=>"会場 "}'はもっとシンプルになります。 –

関連する問題