現在プログラミング学習を兼ねて、rails 6を用いてアプリケーションの開発を行なっているのですが、検索フォームを実装しようとした時に下記のエラーになってしまいます。
NameError in StaticPagesController#home undefined local variable or method `params' for #<User:0x000055b770057508> def feed_search_items Micropost.search(params[:search]) end
うまくparamsに値が代入されていないことが原因だと考えているのですが、text_field_tagに:searchを記述しており、こちらからparams[:search]の値は入ると思うのですが、どこを直せば良いのかわかりません。
ご回答お願いします。下記がソースコードになります。
_header.html.erb
1<header class="navbar navbar-fixed-top navbar-inverse"> 2 <div class="container"> 3 <%= link_to "trawith", root_path, id: "logo" %> 4 <nav> 5 <ul class="nav navbar-nav navbar-right"> 6 <li><%= link_to "Home", root_path %></li> 7 <li><%= link_to "About", about_path %></li> 8 <% if logged_in? %> 9 <li><%= link_to "Users", users_path %></li> 10 <li class="dropdown"> 11 <a href="#" class="dropdown-toggle" data-toggle="dropdown"> 12 Account <b class="caret"></b> 13 </a> 14 <ul class="dropdown-menu"> 15 <li><%= link_to "Profile", current_user %></li> 16 <li><%= link_to "Settings", edit_user_path(current_user) %></li> 17 <li class="divider"></li> 18 <li> 19 <%= link_to "Log out", logout_path, method: :delete %> 20 </li> 21 </ul> 22 </li> 23 <li> 24 <%= form_tag(search_path, :method => 'get') do %> 25 <%= text_field_tag :search, placeholder: "Search..." %> 26 <%= submit_tag '検索', :name => nil %> 27 <% end %> 28 </li> 29 <% else %> 30 <li><%= link_to "Log in", login_path %></li> 31 <% end %> 32 </ul> 33 </nav> 34 </div> 35</header> 36
def self.search(search) if search Micropost.where(['content LIKE ?', "%#{search}%"]) else flash[:wrong] = "該当するものが見つかりませんでした" redirect_to root_url end end def feed_search_items Micropost.search(params[:search]) end
class StaticPagesController < ApplicationController def home if logged_in? @micropost = current_user.microposts.build @feed_items = current_user.feed.paginate(page: params[:page]) @feed_search_items = current_user.feed_search_items.paginate(page: params[:page]) end end def about end def contact end end
<% if @feed_search_items.any? %> <ol class="microposts"> <%= render @feed_search_items %> </ol> <%= will_paginate @feed_search_items, params: { controller: :static_pages, action: :home }%> <% end %>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/13 05:43
2021/04/13 06:00