railsのscaffoldで作成したnew.html.erbのページに日付や時間を入力できるselectboxを複数個作成し、
その値をControllerで取得したいのですがどうすればよいでしょうか?

date_selectやtime_selectを使うとviewは簡単に作成できるのですが、
selectboxが複数個あり、(1i)、(2i)のように変数がControllerにくるので上手く取得する方法が分かりません。

(for文を使ってnameをdate1、date2とかにしておいて、
Controllerでそれを指定、後はハッシュからデータをとるしかないですか?)

以上、よろしくお願いいたします。

A 回答 (1件)

>>selectboxが複数個あり、(1i)、(2i)のように変数がControllerにくるので上手く取得する方法が分かりません。



別々に送られてくる年・月・日データを1つの文字列にまとめて

paramtheday = params[:shedule]['theday(1i)']+'-';params[:shedule]['theday(2i)']+'-'+params[:shedule]['theday(3i)']

さらに、Date型に変換する事例がありました。

datetheday = Date.parse(paramtheday)

(shedule,thedayは実際のアプリにあわせて変えます。)

参考になりますでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます。

やはり、独自に作成した日付用のselectboxだとそのようにするしかないですね。
Date.parseについては使い勝手も良さそうなのでなんとか頑張ってみようと思います。

お礼日時:2009/05/22 18:08

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

このQ&Aを見た人が検索しているワード

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

Qカレンダーを作成し、特定の日付の上に丸印をつける方法はありますか。

カレンダーを作成し、特定の日付の上に丸印をつける方法はありますか。
日付の上に丸印を付けると、下の日付の数字が消えてしまいます。

Aベストアンサー

エクセルを使ってのカレンダー作成だと仮定して、NO.1さんの回答の補足をします。

まず「オートシェイプ」の○機能を使って図形を描くと、図形の周囲を囲むように○が表示されますよね。
ここをダブルクリックすると「オートシェイプの書式設定」が出てきます。
その中の「色と線」の塗りつぶし"色"の部分が初期設定の「自動(白)」になっていると思いますが、ここを「塗りつぶしなし」に変更すると下の線や文字が表示されるようになります。

ちなみに、円を描くときにシフトキーを押しながら描くと、楕円ではなく「まん丸」な円を描くことが出来ますよ。

QRails コンボボックスの値の保持について(select_tag,c

Rails コンボボックスの値の保持について(select_tag,collection_select)

こんにちは。
Ruby on Railsで簡単な一覧検索画面を作成中の者です。

検索時の検索条件にコンボボックスを使用しており、検索後にコンボボックスの値を保持したいのですが、どうしてもできません。

どなたかお分かりの方がおられましたらご教授いただけないでしょうか。
下記、作成中のソースです。

Viewの検索条件部
<%- form_tag({:action => "search"},{:method=> "GET"}) do -%>
<th class="U" align="left" width="10%"><label for="userNm">ユーザー名</label></th>
<td width="90%"><%= text_field_tag :userNm, @userNm %></td>

 <th class="U" align="left" width="10%"><label for="authCd">社員権限</label></th>
<td width="90%">
 <%= collection_select(:auth, :authCd, Auth.find(:all, :order => "AUTH_CD"), :id, :AUTH_NM, :include_blank => true) %>

 <td align="center"><%= submit_tag '検索' %></td>

Controllerクラス:

def search

#画面パラメータから検索条件を作成
c = Condition.new

# ユーザー名
userNm = ""
if params[:userNm]
userNm = params[:userNm]
c.and "USER_NM", "LIKE", "%#{userNm}%"
end
# コンボボックスの値を取得
if params[:auth] && !params[:auth]["authCd"].blank?
c.and "AUTH_CD", params[:auth]["authCd"]
end

# 検索処理
@users = User.paginate(:order => "USER_ID asc",
:per_page => 5,
:page => params[:page],
:conditions => c.where)

# 検索条件保持
@userNm = params[:userNm]
# コンボボックスの値が保持できない
if params[:auth]
@auth_authCd = params[:auth]["authCd"]
end

respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @users }
end
end

見づらくて申し訳ありませんが、ざっと上記のようになっています。
もう1つの検索条件であるユーザー名(userNm)は保持できるのですが、コンボボックス(社員権限)の値が保持できません。

select_tagや、selectも使ってみたのですが、どちらも同じ結果でした。
コンボボックスの条件は、Authモデルから値を読込み、一番上は空白にする。というものです。

どのように記述すれば保持できるのか色々調べてみたのですが、結局分からず仕舞いでした。。

どうぞ宜しくお願い致します。

Rails コンボボックスの値の保持について(select_tag,collection_select)

こんにちは。
Ruby on Railsで簡単な一覧検索画面を作成中の者です。

検索時の検索条件にコンボボックスを使用しており、検索後にコンボボックスの値を保持したいのですが、どうしてもできません。

どなたかお分かりの方がおられましたらご教授いただけないでしょうか。
下記、作成中のソースです。

Viewの検索条件部
<%- form_tag({:action => "search"},{:method=> "GET"}) do -%>
<th class="U" align="left" width="10%"><...続きを読む

Aベストアンサー

オプションのselectedにid値と一致する値をセットすると反映するので

<%= collection_select(:auth, :authCd, Auth.find(:all, :order => "AUTH_CD"), :id, :AUTH_NM, :include_blank => true) %>



<%= collection_select(:auth, :authCd, Auth.find(:all, :order => "AUTH_CD"), :id, :AUTH_NM, {:selected => @auth_authCd.to_i, :include_blank => true } ) %>


Controllerで@auth_authCdが宣言されないとViewでエラーが起きるので

if params[:auth]
@auth_authCd = params[:auth]["authCd"]
end



@auth_authCd = (params[:auth].present? ? (params[:auth]["authCd"] || '') : '')

ソース見た感じだとこんな感じでどうでしょう。

オプションのselectedにid値と一致する値をセットすると反映するので

<%= collection_select(:auth, :authCd, Auth.find(:all, :order => "AUTH_CD"), :id, :AUTH_NM, :include_blank => true) %>



<%= collection_select(:auth, :authCd, Auth.find(:all, :order => "AUTH_CD"), :id, :AUTH_NM, {:selected => @auth_authCd.to_i, :include_blank => true } ) %>


Controllerで@auth_authCdが宣言されないとViewでエラーが起きるので

if params[:auth]
@auth_authCd = params[:auth]["authCd"]
end



@...続きを読む

Q原付の保証書に販売店印と日付が無いんです。

原付を買いましたが保証書に日付と販売店印がありません。
買ったところに電話しました。
『無くても買った日付もわかるし何かあったら直しますよ』とのこと。
田舎の近所のバイク屋のおじいさんです。

原付の保証書に販売店印と日付が無くってもかいませんか?

Aベストアンサー

保障期間を、ある程度過ぎても、保障を伸ばしてもらえると思っても良いと思います。おじさんも「直しますよ」と言ってくれていますし。消耗品は、直してくれませんが。
安くて品数の豊富な大手電気店より街の電気屋さんは、融通が利くと言いますし。
自賠責もその店で加入したなら、領収書とともに、1ヶ月の無料点検もありますし。証拠は、沢山あります。
購入して半年になる私の、バイクにも販売店の印しか捺印していなかったです。(今、確認しました)

QRails3 の time_select の値表示

<table border="1">
<tr>
<td>開始時間</td>
</tr>
<% @studylogheader.studylogdetails.order('starttime').each do |studylogdetail| %>
<tr>
<td>
<%= time_select :studylogdetail, :starttime, { :time_separator => ':' } %>
</td>
</tr>
<% end %>
</table>

上記のような ERB で :starttime の値が初期表示されないのですが、
time_select は、初期表示できないのでしょうか?

Aベストアンサー

>ここで表示したいのは、starttime の値です。現在時刻ではありません。説明が足りずすみません。
具体的にstarttimeに何が格納されているのかわかりませんので、回答できませんが、
starttimeに格納されている時刻をTime型に変換し、その値を:default=>で指定してあげれば、よいかと思います。

Qはがきの日付印について

郵便はがきを出すことになりました。

これは、郵便局の日付印をもらうためです。

一般に、確定日付というのだそうですが、日付の証明になるということで利用しようと思いました。ところが、最近は機械化のせいか日付の薄いスタンプがよくあり、できればはっきりした日付印が欲しいのですが、この場合どうしたらいいのでしょうか。

ポストではなく窓口で投函すれば、スタンプははっきり押してもらえるのでしょうか。それとも特別に窓口でお願いすべき、また、お願いできるのでしょうか。

教えてください。

Aベストアンサー

元・郵便局員です。

1.郵便物の集配を行う郵便局の場合
郵便窓口および郵便時間外窓口(ゆうゆう窓口)の営業時間内にお越しいただき、
「この場で、消印を押してください!」
とお申し出いただければ、押印します。

2.郵便物の集配を行わない郵便局の場合
「郵便局長が業務上差し支えないと判断した場合」に限り、その場で押印します。
支障があると判断した場合は、「押印しません」。

上記は、ごく普通の消印の場合です。http://www.geocities.co.jp/Playtown-Domino/5995/phi_gif/049.gif


つぎに、普通でない消印の場合ですが、最初の回答者様の回答にあります「風景スタンプ」(風景入り通信日付印)などの場合は、業務上の支障の有無に関係なく、差し出された郵便局で押印します。なお、全ての郵便局には配備されていないため、差し出し前にご確認ください。

Qrailsでtime_selectを利用すると処理がおかしい

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です。)

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

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...続きを読む

Aベストアンサー

>>根本的な原因は何なのでしょうか?
(rubyは1.8.7、railsは2.2.2です。)

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

Q日付の薄い領収印について

次回の確定申告で医療費控除の手続きをする者です。
通院・入院の領収書をチェックしていたところ、どれも領収印が薄く日付の判別が出来ないことに気付きました。日付印とは別に発行日も印刷されているので、それで判るものもありますが、肝心の高額な入院費の領収書は、支払った1日前の日付で印刷されており、隠すようにその上に収入印紙が貼られていて、なおかつ領収印は読み取れない程薄いです。こんな状態で発行しておいて、「再発行はいたしません」と書かれてあります。来年申告の時期になって『無効』になったりしないか心配です。これで大丈夫でしょうか?
よろしくお願いします。

Aベストアンサー

医療費控除は、その年1月1日~12月31日までに実際に支払ったものが対象となりますので、そもそもは日付が確認できるべきものでなければならないとは思います。

ただ、実際には、ひとつひとつチェックするとは限りませんし、明らかに別の年の領収書でない限りは、薄くて良く見えない程度であれば、そのまま受け付けてもらえるものと思います。

気になるようでしたら、ご自分で別途で、一覧表のようなものを作られたら良いと思います。
医療機関と、治療を受けられた方の名前と、支払った月日と金額ですね。
それと、医療費控除には、通院等にかかる電車・バス等の公共交通機関による交通費も対象となり、これについては領収書は不要で、メモ書き等で良いので、このような一覧表の一番右等に、かかった交通費を記載している方も結構いらっしゃいますし、そのような表があれば、明らかに違う年とわからない限りは否定もし難い訳ですので、より無難とは思います。
エクセルを使えるようであれば、エクセルで作られても良いと思います。
(もちろん、そのような日ごとの一覧表が必須、という訳ではありませんので、それがなくても認められるとは思いますが)

医療費控除は、その年1月1日~12月31日までに実際に支払ったものが対象となりますので、そもそもは日付が確認できるべきものでなければならないとは思います。

ただ、実際には、ひとつひとつチェックするとは限りませんし、明らかに別の年の領収書でない限りは、薄くて良く見えない程度であれば、そのまま受け付けてもらえるものと思います。

気になるようでしたら、ご自分で別途で、一覧表のようなものを作られたら良いと思います。
医療機関と、治療を受けられた方の名前と、支払った月日と金額で...続きを読む

QPHPでrailsのscaffold的なものは何にあたりますか

Railsで商品管理テーブルのようなものを作成する勉強してますが
PHPやcakephpなどでrailsのscaffoldにあたるようなコマンドはありますか?
これだけ主流のPHPなのでPHPで学習する方が(人口的に多い=調べやすい)いいのかなと考えてます
でも一つのコマンドでscaffoldさっと出来てしまうことを最初に知ってしまったので、なかなか他の構造とやりたいことが結びつかなくてやや悩んでます。
今はxammpをまず入れてPHP開発環境は整ったかなと、でどう商品管理テーブルを構築(登録 追加 削除 保存 テキスト保存など)すすればいいのかと
このような悩みですが
ごアドバイス頂きたくおねがいいたします。

Aベストアンサー

CakePHP 2.x bakeコマンド
http://book.cakephp.org/2.0/ja/console-and-shells/code-generation-with-bake.html

Qワードで日付印の文字が表示されない

電子メールでワードの報告書が送られてきました。
承認欄に3人の日付印(丸くて真ん中に日付、上下に苗字)が貼られているのですが1人の印だけ丸のなかに日付しか入っていませんでした。
印刷プレビューでみても入っていません。
しかし他の人のパソコンで開いたところちゃんと苗字まで入っていました。どのようにしたら私のパソコンでも正しく表示できますか?

Aベストアンサー

No.3のasyuです。
ワードの新規画面に問題の部分を貼り付けした場合はいかがでしょうか?
表示される場合は、フォントキャッシュの破損かもしれません。
パソコンをセーフモードで起動して、何もしないで終了しますと回復すると思います。

ワード自体の不具合が考えられる場合は、こちらを試してみてください。
Word 2007、Word 2003、または Word 2002 の起動時または使用時に発生する問題のトラブルシューティング方法
http://support.microsoft.com/kb/921541/ja

Word 2000 起動時に問題が発生する場合の対処方法
http://support.microsoft.com/default.aspx?scid=kb;ja;880994

QRuby on railsのフォームでSelectの値をDBから取得できない

ruby on railsのフォームで以下のように書いたのですが、
<%= select 'member', 'sex', [ [ "男", "1" ] , [ "女", "2" ]] %>
新規登録時には問題なく登録されるのですが、編集する際に、新規登録時に
女を選んだにもかかわらず、男が選ばれた状態になってしまいます。
編集時に女が選ばれた状態にするにはどこをどのように修正すればいいのでしょうか?
よろしくお願いします。

Aベストアンサー

'sex' が何型なのか分かりませんが、もし整数型なのだとしたら、1, 2 が文字列型であることが原因でしょう。

<%= select 'member', 'sex', [["男", 1] , ["女", 2]] %>

であればうまくいくと思いますが、いかがでしょうか。

なお、質問する際には、

rails --version
gem --env

といったあたりの出力を添えておくと、回答が得やすくなると思われます。

参考URL:http://wiki.fdiary.net/rails/?ActionViewHelper


人気Q&Aランキング

おすすめ情報