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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

967閲覧

renderedと表示されているのに、実際は変わらない

sooryung

総合スコア22

Ruby on Rails 5

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/03/02 02:07

前提・実現したいこと

railsで検索フォームを作っています。
「検索フォームページ」で条件を入力後、検索ボタンを押すと、「検索結果ページ」がrenderされるようにしたいです。

↓検索フォームページ(search_page.html.erb)

<%= form_with url: oba_searching_path, method: (:get) do |f| %> <li><%= f.datetime_select :start_time, :minute_step => 15 %></li>から <li><%= f.datetime_select :end_time, :minute_step => 15 %></li> <li><%= f.submit '検索' %></li> <% end %>

↓searchings_controller.rb

class Oba::SearchingsController < ApplicationController def searching start_time = Time.zone.local(params["start_time(1i)"].to_i, params["start_time(2i)"].to_i, params["start_time(3i)"].to_i, params["start_time(4i)"].to_i, params["start_time(4i)"].to_i) end_time = Time.zone.local(params["end_time(1i)"].to_i, params["end_time(2i)"].to_i, params["end_time(3i)"].to_i, params["end_time(4i)"].to_i, params["end_time(5i)"].to_i) @shift = Shift.new @shifts = @shift.matches(start_time, end_time) render :results end end

↓検索結果ページ(results.html.erb)

<% @shifts.each do |shift|%> <%= shift.id %> <% end %>

発生している問題・エラーメッセージ

検索ボタンを押した時の、ターミナルの表示はこうです。

Started GET "/oba/searching?utf8=%E2%9C%93&%5Bstart_time(1i)%5D=2019&%5Bstart_time(2i)%5D=3&%5Bstart_time(3i)%5D=2&%5Bstart_time(4i)%5D=01&%5Bstart_time(5i)%5D=00&%5Bend_time(1i)%5D=2019&%5Bend_time(2i)%5D=3&%5Bend_time(3i)%5D=2&%5Bend_time(4i)%5D=08&%5Bend_time(5i)%5D=00&commit=%E3%82%B9%E3%82%BF%E3%83%83%E3%83%95%E3%82%92%E6%8E%A2%E3%81%99" for 127.0.0.1 at 2019-03-02 10:42:41 +0900 Processing by Oba::SearchingsController#searching as JS Parameters: {"utf8"=>"✓", "start_time(1i)"=>"2019", "start_time(2i)"=>"3", "start_time(3i)"=>"2", "start_time(4i)"=>"01", "start_time(5i)"=>"00", "end_time(1i)"=>"2019", "end_time(2i)"=>"3", "end_time(3i)"=>"2", "end_time(4i)"=>"08", "end_time(5i)"=>"00", "commit"=>"スタッフを探す"} User Load (0.2ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 6 LIMIT 1 ↳ app/helpers/sessions_helper.rb:27 Rendering oba/searchings/results.html.erb within layouts/application Shift Load (0.4ms) SELECT `shifts`.* FROM `shifts` WHERE (start_time <= '2019-03-02 01:01:00') AND (end_time >= '2019-03-02 08:00:00') ↳ app/views/oba/searchings/results.html.erb:1 Rendered oba/searchings/results.html.erb within layouts/application (1.4ms) Completed 200 OK in 57ms (Views: 38.9ms | ActiveRecord: 2.8ms)

最後、Rendered oba/searchings/results.html.erbとなっているのに、ブラウザでは検索フォームページから何も変わりません。

また、コメントアウトになってしまっていますが、2行目のProcessing by Oba::SearchingsController#searching as JSが気になっています。
なんでJSになるのかわかりません。

試したこと

試したことというか・・・
初めは、検索フォームページのsubmitの隣にremote trueとしていましたが(初めはAJAX使おうとしていたが、途中でやっぱりやめた)、消しました。
消しきれていないのか・・・

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

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

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

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

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

guest

回答1

0

ベストアンサー

初めは、検索フォームページのsubmitの隣にremote trueとしていましたが(初めはAJAX使おうとしていたが、途中でやっぱりやめた)、消しました。

form_withで書く場合、逆にremote: falseとしないと、Ajax処理として扱われてしまいます。

投稿2019/03/02 02:12

maisumakun

総合スコア145183

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

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

maisumakun

2019/03/02 02:14

Rails 5.1以上では、「remote: false」ではなく「local: true」と書く必要があるとのことです。
sooryung

2019/03/02 02:37

早速ありがとうございます! Rails 5.2.2なので、 <li><%= f.submit 'スタッフを探す', local: true %></li> と描きました。 しかし実行結果は変わりません(- -;) それからrenderができていないのとこのJS問題は関係はありそうでしょうか?
maisumakun

2019/03/02 02:41

local: trueは、form_withの引数として書いてください。 local: trueがないと、リクエストがAjax形式(JavaScript)になります。「JS問題」は問題そのももです。
sooryung

2019/03/02 03:08

解決しました!! ありがとうございます、理解は自分でしてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問