Rails 5.0.0.1、ruby 2.3.1で開発しています。
Search Actionを実装しているのですが、実行後にIndexに飛ばず、showに飛んでしまいます。(以下記載コードにshow actionは実装していませんが、それは問題ないはずです)
自分が書いたコードを見ても、間違っている箇所が分からず、ご指摘頂けると有り難いです。
routes.rbの記載
ruby
1namespace :admin do 2 root 'top#index' 3 get 'about' => 'top#about', as: :about 4 get 'hello(/:name)' => 'hello#show', as: :hello 5 get 'login' => 'sessions#new', as: :login 6 resource :session, only:[:create, :destroy] 7 resources :users 8 resources :users do 9 collection {get "search"} 10 end 11 resources :users do 12 resources :user_events, only: [ :index ] 13 end 14 resources :products do 15 collection {get "search"} 16 end 17 resources :user_events, only: [ :index ] 18 end 19 end
contollers/admin/users_controllerの記載
ruby
1class Admin::UsersController < Admin::Base 2 3 def index 4 @users = User.all.order("id") 5 end 6 7 def search 8 @users = User.search(params[:q]) 9 render "admin/users/index" 10 end 11end
models/user.rb の記載
ruby
1class << self 2 def search(query) 3 rel = order("user_id") 4 if query.present? 5 rel=rel.where("email LIKE ? OR family_name LIKE? OR given_name LIKE? OR family_name_kana LIKE? OR given_name_kana LIKE? 6 OR user_name LIKE? OR address LIKE?", 7 "%#{query}%", "%#{query}%, %#{query}%", "%#{query}%, %#{query}%", "%#{query}%, %#{query}%") 8 end 9 rel 10 end #def 11 end #class
最後にindex.html.erb
ruby
1<%= form_tag :search_admin_users, method: :get do %> 2<p><%= text_field_tag "q", params[:q] %><%= submit_tag "検索" %></p> 3<% end %> 4 5<div class="links"> 6 <%= link_to '新規登録', :new_admin_user, class: 'table-link' %> 7</div> 8 9<% if @users.present? %> 10<table class="table"> 11 <thead> 12 <tr> 13 <th>id</th> 14 <th>氏名</th> 15 <th>フリガナ</th> 16 <th>ユーザーネーム</th> 17 <th>メールアドレス</th> 18 <th>開始日</th> 19 <th>終了日</th> 20 <th>停止フラグ</th> 21 <th>アクション</th> 22 </tr> 23 </thead> 24 <tbody> 25 <% @users.each do |m| %> 26 <tr> 27 <th scope="row"><%= m.id %></th> 28 <td><%= link_to m.family_name, [:admin, m]%> <%= link_to m.given_name, [:admin, m]%></td> 29 <td><%= m.family_name_kana %> <%= m.given_name_kana%></td> 30 <td><%= m.user_name %></td> 31 <td><%= m.email %></td> 32 <td><%= m.start_date.strftime('%Y/%m/%d') %></td> 33 <td><%= m.end_date.try(:strftime, '%Y/%m/%d') %></td> 34 <td><%= m.suspended?? raw('☑') : raw('☐') %></td> 35 <td> 36 <%= link_to '編集', [ :edit, :admin, m ]%> | 37 <%= link_to '削除', [ :admin, m ], method: :delete, 38 data: { confirm: '本当に削除しますか?' } %> 39 </td> 40 </tr> 41 <% end %> 42 </tbody> 43</table> 44<% else %> 45<p>会員情報がありません。</p> 46<% end %> 47 48 <div class="links"> 49 <%= link_to '新規登録', :new_admin_user, class: 'table-link' %> 50 </div> 51</div> 52
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/19 23:48