質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

3098閲覧

【Ruby on Rails + ransack】範囲指定が出来るのはdatetime型のみでdate型は不可?

pecchan

総合スコア592

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2017/05/14 03:15

編集2017/05/15 00:58

Ruby on Rails + ransackで日付の範囲指定による検索をしたいです。

ransackの日付の範囲指定は、
datetime型のみでしょうか?

date型は対応不可でしょうか?

imp_date(date型)に対して範囲指定をしたく、以下のようにしましたが、
実行時にNoMethodError が発生します。
※試しにdatetime型にするとエラーががでません。

ruby

1<%= f.text_field :imp_date_at_gteq, class: 'date-picker' %> ~ <%= f.text_field :imp_date_at_lteq, class: 'date-picker' %>

data型に対して行う場合、何か方法はあるでしょうか?

それとも、datatime型に変更したが良いでしょうか?
データは日付だけで良く、時刻は不要なのですが・・・。

皆さんはどうされてますでしょうか?
教えて下さい。

エラーメッセージ
エラーメッセージ

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

moke

2017/05/15 00:18

どうもしていません、そもそも、datatime型、date型、両方で使えるからです。他が原因しているのかもしれません、実行時のNoMethodErrorの内容を晒してください。
pecchan

2017/05/15 00:59

moke様 有難う御座います。エラーの画面をアップしました。
moke

2017/05/15 01:10

imp_date_at_gteqのatはなんでしょう抜いてみては?
pecchan

2017/05/15 01:30

moke様 有難う御座います。「解決済」にしたいのでお手数ですが「回答」にご記入いただけますでしょうか?宜しくお願い致します。
guest

回答1

0

ベストアンサー

どうもしていません、そもそも、datatime型、date型、
両方で使えるからです。
他が原因しているのかもしれません、実行時のNoMethodErrorの内容を晒してください。
一応imp_date(date型)と書いてあるのに
imp_date_at_gteqのatが入っているのが気になります。

投稿2017/05/15 01:32

moke

総合スコア2241

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pecchan

2017/05/15 03:36

moke様 簡単なミスでお恥ずかしい限りです。 ご指摘の通り「at」が不要でした。 有難う御座いました。
moke

2017/05/15 04:02

よかったです。 DateTime columnをhoge_atにして Date column をhoge_onにする風習があるとかないとか それにひきづられたのですな
pecchan

2017/05/15 07:17

moke様 有難う御座います。 その風習も初めて知りました。 なるほど。名前から型が分かるため良いですね! 次回からこの風習に従いたいと思います!
moke

2017/05/15 07:39 編集

完全に誤解させました。 at,onで区別(column名にdatastoreの内容を紐付ける)は悪しき風習です、絶対やめましょう。 悪しき風習にひきづられた→やめようと言う流れのつもりでした。 そう言うのを意識しなくていいようにしたrailsなのです。 明確に日付等に関するデータを区別したい時_atだけつけるのはいいかもしれませんが... created_at等(でもこれはatと言うよりcreated_atで生成日時と考えるのが自然ですね。) DateからDateTime変更が必要になった時atをonに書き換えることを考えると。 DataBaseのcolumn名で管理してはいけません。 TimeZoneの調整等はRails側で行えばいいので。
pecchan

2017/05/15 23:03

moke様 有難う御座います。 また私の勘の悪さが出てしまいました。。。 なるほど。データ型の変更になった際に、名前まで変えることになる・・・。 created_at、updated_atだけ特別と思ってたら良いですね! 有難う御座いました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問