2016-07-13 6 views
0

.sqlファイルを使用してRailsにデータをインポートし、ほとんどの列タイトルにピリオド "。"が付いていることを確認しました。それらの中に。これは明らかに問題であり、列名を変更する移行を実行しようとした後でも、期間はまだそれを放棄しています。話す回避策はありますか?列タイトルを "。"で変更する期間

class FixColumnNames < ActiveRecord::Migration 
    def change 
      change_table :my_table do |t| 
       t.rename :p1.address, :'p1_address' 
      end 
    end 
end 
+1

以上が動作しない理由を表現その事実を考慮し、理解するために':p1.to_s'は文字列' 'p1 ''を返します。 ':p1'はシンボルであり、Symbolsは' address'というメソッドに応答しないので、 ':p1.address'という式はNoMethodErrorを発生させます(あなたの質問に含めるべきです)。 Simoneが以下に示すように、特殊文字(またはスペース)を含むシンボルは、引用符で囲む必要があります(例: '' p1.address "'または ': 'p1.address' ')。 –

答えて

3

また、文字列を使用することができます。

t.rename "p1.address", "p1_address" 

次の構文も有効です。

t.rename :"p1.address", :"p1_address" 
関連する問題