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

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

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

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

1回答

1761閲覧

Ransack「f.time_select」検索で空欄の場合は全ての結果を返したい

besuko

総合スコア16

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2016/07/14 07:38

##環境
ruby 2.1.0
Rails 4.1.0
ransack 1.7.0

##Ransackでf.time_select
gemRansackでお店の開店時間を指定できる検索を実装したく、f.time_selectを用いています。
f.time_selectで時間を指定せずに検索した場合、空欄の場合は全ての結果が返されるようにしたいです。
Item Load (1.5ms) SELECT DISTINCT items.* FROM items WHERE items.time = '0001-01-01 00:00:00' ORDER BY items.time1 ASC

となりますが```0001-01-01 00:00:00```のデータ無いため何も返されません。 ```item_controller.rb def index @q = Shop.search(params[:q]) @q.sorts = 'name asc' if @q.sorts.empty? @shops = @q.result(distinct: true) respond_with(@shops) end

item/index.html.erb

1<h1>商品一覧</h1> 2 3<%= search_form_for @q do |f| %> 4 <%= f.label :name_cont, "商品名" %> 5 <%= f.search_field :name_cont %> 6 7 <%= f.label :city, "市町村" %> 8 <%= f.search_field :shop_city_cont %> 9 10 <%= f.label :open_time, "開店時間" %> 11 <%= f.time_select :open_time_eq, :minute_step => 10, :include_blank => true %> 12 <%= f.submit '検索'%> 13<% end %> 14 15<table> 16 <thead> 17 <tr> 18 <th><%= sort_link(@q,:shop_name,'店名') %></th> 19 <th><%= sort_link(@q,:shop_city, '市町村') %></th> 20 <th><%= sort_link(@q,:name,'商品名') %></th> 21 <th><%= sort_link(@q,:price,'値段') %></th> 22 <th><%= sort_link(@q,:open_time,'開店時間') %></th> 23 <th>Content</th> 24 <th colspan="3"></th> 25 </tr> 26 </thead> 27 28 <%= render @items %>

<%= f.time_select :open_time_eq, :minute_step => 10, :include_blank => true %>
ここで開店時間を指定した場合は、時間に一致するものが結果に出ますが、空欄の状態で検索した場合は0時0分に設定されて何も返されずにいます。

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

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

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

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

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

guest

回答1

0

わたしもこの問題遭遇しました、リンク参考にコントローラーで処理するしかなさそう

クエリレコード作成と番組自動予約

time_select blank field saves a default time when form is submitted

投稿2020/04/25 16:40

編集2020/04/25 16:42
smapira

総合スコア33

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問