railsのtime_selectで作成したフォームの値でDBへのInsertやUpdateが上手くいきません。

具体的にはtime_selectでフォームを作成すると、
Controllerには以下のような変数がくると思います。

(1i) 2009
(2i) 05
(3i) 22
(4i) 10
(5i) 10

ただ、これをそのままDBへ送ると「XX:10:10」のように、
時間の部分が分に、分が秒になってしまい、時間の箇所にはよく分からない数字が入ります。
(DBへのInsert、Updateは「paramas[:Controller名]」で
取得したものをそのままcreate、update_attributesしています。)

hidden_field_tagで(6i)を作成したり、
time_selectのinclude_secondsを有効にすると正常になるのですが、
根本的な原因は何なのでしょうか?
(rubyは1.8.7、railsは2.2.2です。)

ご存知の方はよろしくご教示願います。

A 回答 (1件)

>>根本的な原因は何なのでしょうか?


(rubyは1.8.7、railsは2.2.2です。)

単純にtime_selectを使用したフォームを使って、DBへのUpdateを行った場合、こちらでは、問題が発生していません。Controllerでは何も指定しない場合です。(ruby 1.8.6,rails 2.3.2)
なので、もしかすると、Controllerの中で自分で細工する場合、きちんと(6i)までの指定が必要になるのかも?
    • good
    • 0
この回答へのお礼

ありがとうございます。

原因がよくわからなかったので、
Controllerで強引に値を整形することにしました。

お礼日時:2012/11/08 20:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QMySQLでデータベースにデータinsert時のエラー。

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column '******' at row 1
とエラーがでて解決できません。どこがおかしいのでしょうか?(JAVA初心者ですいません。)

Aベストアンサー

私の場合ですが、データベース接続直後に
"SET NAMES SJIS;"
を実行すれば正常にINSERT出来ました。

なお、テーブルの作成時に文字コードをSJISにしておく必要があります。私は(cp932 -- SJIS for Windows Japanese)にしました。
後からテーブルの文字コードを修正してもうまくいきませんでした。

QRuby 改行文字の挿入

こんにちは。
Rubyの質問です。
htmlの文章にrubyで改行文字を挿入してそれを認識させたいのですが、
htmlの文章内に¥nを挿入しても読み込んだ際にうまく認識してくれませんでした。

何か他に方法があるのでしょうか。
ご教授の程よろしくお願い致します。

Aベストアンサー

どのようにして\nを挿入したのか、不明ですが、エディタを使用して行った前提で回答です。
改行コードを埋め込む場合は、\nを挿入したい位置で、Enterキーを押下してください。
それで、見かけ上、2行になれば、そこに改行コードが埋めこまれたことになります。

尚、通常は\nの文字そのものは、\とnの2文字にすぎません。
ruby のスクリプトでそれを"\n"のようにダブルクオートでくくった場合、それをrubyが改行コードとして扱う
という特別の約束があります。

ですので、エディタで行なう場合は、実際の改行コードを埋め込まないといけません。


人気Q&Aランキング

おすすめ情報