
初歩的な質問で恐縮です。
Ruby on Rails でDBのカラムにハイフンは使えますでしょうか。
多言語対応で中国語などを扱っているのですが、
カラム名が name_zh-tw のようなものがあるのですが、値が取得できずに困っております。。
例)
Items テーブルに name_zh-twがある場合。
@item = Items.find_by_i(1000)
@item.name_zh-tw
=>NoMethodError: undefined method `name_zh' for #<Item:0xb605f364>
のようになってしまいます。。
また、上記以外の箇所でもダブルクォートで囲ったら大丈夫な場合がありますが、ログには警告がでます。これは仕方ないのでしょうか。。
[WARN] Exception occurred during reader method compilation.
[WARN] Maybe name_zh-tw is not a valid Ruby identifier?
[WARN] compile error
-----
環境は以下の通りです。
何卒よろしくお願いいたします。
Ruby1.8.7
Rails2.3.15
MySQL5.5
No.1ベストアンサー
- 回答日時:
-は引き算として判断されます。
こんな書き方もできたはずです。
@item['name_zh-tw']
@item[:'name_zh-tw']
文字列またはシンボルで、
-や特殊な記号があるとシンボルにするにも:'name_zh-tw'としないと不都合がでます。
ご連絡が遅くなって申し訳ありません。
教えて頂いた書き方で出来ました!!
こんな書き方もできるんですね。。勉強になりました(どちらでもできました)。
@item['name_zh-tw']
@item[:'name_zh-tw']
他のwarningが出た箇所も、シングルクウォート(またはダブルクウォート)を付ければ解決しました。
ありがとうございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一意なID
-
MERGE文について
-
SQL MARGE 使用方法 ORACLE
-
SQLローダーCSV取込で、囲み文...
-
テーブルの最後(最新)のレコー...
-
単一グループのグループ関数で...
-
count関数の値をwhere句で使用...
-
Oracleで「文字が無効です」の...
-
select文の実行結果に空白行を...
-
SQL*Loader Append
-
データ
-
1の行を固定した上でVBAを用い...
-
SQL文 複数実行
-
引数によってwhere句を切り替え...
-
【PL/SQL】FROM区に変数を使う方法
-
割合(パーセント)を求めるには?
-
group byの並び順を変えるだけ...
-
ntext更新時にエラーが出ます
-
トランザクションログを出力せ...
-
テーブルのフィールドの一番長...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBScriptにて、csvファイルから...
-
VC++ (ADO) で Access の Yes/N...
-
PL/SQLの動的SQLで複数の項目を...
-
これって削除しても良いのでし...
-
NULL固定として出力
-
[ADO.NET]Accessの日付型にデー...
-
ログファイルの保存方法
-
データコンボに2つのフィール...
-
SQLローダーCSV取込で、囲み文...
-
テーブルの最後(最新)のレコー...
-
単一グループのグループ関数で...
-
Oracleで「文字が無効です」の...
-
SELECT FOR UPDATE で該当レコ...
-
【PL/SQL】FROM区に変数を使う方法
-
レコードの登録順がおかしい
-
select文の実行結果に空白行を...
-
where句中のtrim関数について
-
count関数の値をwhere句で使用...
-
データ
-
SQL*Loader Append
おすすめ情報