前提・実現したいこと
railsのアプリでトップページで各カラムのデータをAnd検索で検索する機能を実装したいです。
エラーメッセージからは原因が予測できず、投稿させていただきました。
下記のURLを参考にしました。
https://qiita.com/budougumi0617/items/d98fc15adea4dab438e7
発生している問題・エラーメッセージ
We're sorry, but something went wrong. If you are the application owner check the logs for more information.
該当のソースコード
items_controller.rb
Ruby
1class ItemsController < ApplicationController 2 3 def index 4 # データを降順で表示する 5 @items = GyomuDatum.all.order(created_at: 'desc') 6 7 # パラメータとしてサーバ名を受け取っている場合は絞って検索する 8 #if params[:target_server].present? 9 #@items = @items.get_by_target_server params[:target_server] 10 #end 11 12 #ViewのFormで取得したパラメータをモデルに渡す 13 @items = Item.search(params[:search]) 14 15 end 16 17 def show 18 end 19 20 def new 21 @item = GyomuDatum.new 22 end 23 24 def create 25 # render plain: params[:GyomuDatum].inspect 26 # save 27 # @item = Item.new(params[:GyomuDatum]) 28 # @item = GyomuDatum.new(params.require(:GyomuDatum).permit(:manage_id, :category_id, :publish_corporation, :ip_address, :target_server, :start_date, :end_date, :comment)) 29 @item = GyomuDatum.new(item_params) 30 # @item.save 31 # redirect 32 # redirect_to items_path 33 34 if @item.save 35 # redirect 36 redirect_to items_path 37 else 38 # render plain: @item.errors.inspect 39 render 'new' 40 end 41 end 42 43 44 def edit 45 @item = GyomuDatum.find(params[:id]) 46 end 47 48 def update 49 @item = GyomuDatum.find(params[:id]) 50# pp @item 51# pp item_params 52 53 if @item.update(item_params) 54 redirect_to items_path 55 else 56 render 'edit' 57 end 58 end 59 60 def destroy 61 @item = GyomuDatum.find(params[:id]) 62 @item.destroy 63 redirect_to items_path 64 end 65 66# private 67# def item_params 68# params.require(:GyomuDatum).permit(:manage_id) 69# params.require(:gyomu_datum).permit(:manage_id, :category_id, :publish_corporation, :ip_address, :target_server, :start_date, :end_date, :comment) 70# params.require.fetch(:GyomuDatum,{}).permit(:manage_id, :category_id, :publish_corporation, :ip_address, :target_server, :start_date, :end_date, :comment) 71# end 72 73 private 74 def item_params 75 permits = [ 76 :manage_id, 77 :category_id, 78 :publish_corporation, 79 :ip_address, 80 :target_server, 81 :start_date, 82 :end_date, 83 :comment 84 ] 85 params.require(:gyomu_datum).permit(permits) 86 end 87 88 89# private 90# def post_params 91# params.require(:post).permit(:title, :body) 92# end 93 94end 95
index.html.erb
Ruby
1<h2> 2 <ul class="header-left"> 3 <%= link_to 'HOME' , root_path, class: 'header-menu' %> 4 <%= link_to 'データ登録' , new_item_path, class: 'header-menu' %> 5 <%= link_to 'ユーザ管理' , new_item_path, class: 'header-menu' %> 6 <%= link_to '操作履歴一覧' , new_item_path, class: 'header-menu' %> 7 </ul> 8 <ul class="header-right"> 9 <%= link_to 'ログアウト' , new_item_path, class: 'header-menu' %> 10 </ul> 11</h2> 12 13<br> 14<br> 15<br> 16<h2> 17通知 18</h2> 19<br> 20<br> 21<br> 22<h2> 23データ検索 24</h2> 25<% form_tag items_path, :method => 'get' do %> 26 <p> 27 <%= text_field_tag :search, params[:search] %> 28 <%= submit_tag "Search", :target_server => nil %> 29 </p> 30<% end %> 31<h2> 32<br> 33<br> 34<br> 35<br> 36データ一覧 37</h2> 38 39 40 41<table border="1"> 42 <tr> 43 <th>管理ID</th> 44 <th>カテゴリ</th> 45 <th>発行会社</th> 46 <th>IPアドレス</th> 47 <th>対象サーバ</th> 48 <th>有効期限の開始日</th> 49 <th>有効期限の終了日</th> 50 <th>コメント</th> 51 <th>操作</th> 52 </tr> 53<% @items.each do |item| %> 54 <tr> 55 <td><%= item.manage_id %></td> 56 <td><%= item.category_id %></td> 57 <td><%= item.publish_corporation %></td> 58 <td><%= item.ip_address %></td> 59 <td><%= item.target_server %></td> 60 <td><%= item.start_date %></td> 61 <td><%= item.end_date %></td> 62 <td><%= item.comment %></td> 63 <td> 64 <%= link_to '[Edit]', edit_item_path(item), class: 'command' %> 65 <%= link_to '[x]', 66 item_path(item), 67 method: :delete, 68 class: 'command', 69 data: { confirm: 'データ削除しますか?' } %> 70 </td> 71 </tr> 72 73<% end %> 74</table> 75 76<h2> 77 <%= link_to 'CSV出力' , new_item_path, class: 'header-menu' %> 78</h2> 79
gyomu_datum.rb
Ruby
1class GyomuDatum < ActiveRecord::Base 2 3 validates :manage_id, presence: true 4 validates :category_id, presence: true 5 validates :publish_corporation, presence: true 6 validates :ip_address, presence: true 7 validates :target_server, presence: true 8 validates :start_date, presence: true 9 validates :end_date, presence: true 10 11 12 13 # 検索機能 14 15 # サーバ名による絞り込み 16 17 18 # サンプル 19def self.search(search) 20 if search 21 find(:all, :conditions => ['target_server LIKE ?', "%#{search}%"]) 22 else 23 find(:all) 24 end 25end 26 27 28 29 30 31end 32 33
試したこと
Webアプリのトップページにアクセスした際にエラーが表示され、アクセスできず、ログ(log/development.log)にも何も出力されていません。
gyomu_datum.rbの検索機能部分の記載をコメントアウトしたところ、トップページにアクセスできるようになります。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/21 02:53