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

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

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

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

504閲覧

railsアプリで検索画面と検索結果を分けて表示させたい

ruby5140

総合スコア9

Ruby on Rails 5

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2018/11/06 02:28

編集2018/11/06 04:37

前提・実現したいこと

※勉強中の初心者になります。

CRUDで作成した簡単なwebアプリに検索機能を追加。
検索画面(index)と検索結果を分けて表示したい。
※同一の画面内で、検索画面と検索結果を表示させることはできました。
これを分けたいのが実現したい内容になります。

現状、分けることは成功しましたが、
検索結果側で何も表示されず。。

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

検索画面(index)と検索結果(search)をわけるにあたり、
ルーティングを書いて、検索画面(index)から検索後、
検索結果(search)側の画面で何も表示されず。。

URLをみると下記の記載がありました。

・URLの抜粋
us-east-2.amazonaws.com/customers/search.%23Customer::ActiveRecord_Relation:0x007fa9745b1420

該当のソースコード

・ルーティングの結果
ec2-user:/environment/customer-db (master) $ rails routes
Prefix Verb URI Pattern Controller#Action
search_customers GET /customers/search(.:format) customers#search
customers GET /customers(.:format) customers#index
POST /customers(.:format) customers#create
new_customer GET /customers/new(.:format) customers#new
edit_customer GET /customers/:id/edit(.:format) customers#edit
customer GET /customers/:id(.:format) customers#show
PATCH /customers/:id(.:format) customers#update
PUT /customers/:id(.:format) customers#update
DELETE /customers/:id(.:format) customers#destroy
ec2-user:
/environment/customer-db (master) $

・index.html.erb ※検索画面
こちらが検索画面になります。
※下記がコードです

<h1>顧客管理DB</h1> <%= form_tag(customers_path,:method => 'get') do %> <%= text_field_tag :search %> <%= link_to 'Search', search_customers_path(@customers) %> <% end %>

・search.html.erb ※検索結果
こちらが検索結果を表示する画面になります。
※下記がコードです

<h1>顧客管理DB</h1> <% if @customers %> <% @customers.each do |customer| %> <li><%= link_to customer.id, customer %> : <%= customer.company %></li> <li><%= customer.phone %></li> <li><%= customer.server %></li> <li><%= customer.remark %></li> <% end %>

<% end %>
・customers_controller.rb
こちらがコントローラーの内容で、
ここの書き方もわかってない状況です。。

class CustomersController < ApplicationController

def index end def search @customers = Customer.search(params[:search]) end

・customer.rb

 class Customer < ApplicationRecord
def self.search(search)
if search
Customer.where(['company LIKE ?', "%#{search}%"])
else
'#Customer.all
end
end

end

試したこと

indexページを表示し、検索ワードを入れて検索すると画面遷移はするものの、
検索結果側でデータが表示されず。
コントローラのindexに値を追記したりしてみましたが変わらず。。

補足情報(FW/ツールのバージョンなど)

rails 5.0.7
AWS cloud9環境

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

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

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

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

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

guest

回答1

0

自己解決

変更前

<h1>顧客管理DB</h1> <%= form_tag(customers_path,:method => 'get') do %> <%= text_field_tag :search %> <%= link_to 'Search', search_customers_path(@customers) %> <% end %>

変更後

<h1>顧客管理DB</h1> <%= form_tag(search_customers_path,:method => 'get') do %> <%= text_field_tag :search %> <%= submit_tag 'Search', :name => nil %> <% end %>

で、解決しました。

投稿2018/11/06 06:42

ruby5140

総合スコア9

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問