【问题标题】:Rails app - Search action showing all results instead of specific resultsRails 应用程序 - 显示所有结果而不是特定结果的搜索操作
【发布时间】:2016-03-25 04:53:19
【问题描述】:

我想在我的 rails 应用中搜索帖子。问题是当我搜索某些内容时,它会显示数据库中的所有帖子,而不是具体结果。这是posts_controller.rb 中的操作:

def search
   @posts=Post.where('text LIKE ?', "%#{params[:text]}%")
end

这是index.html.erb中的搜索表单

<%=form_for(:post, :method=>'get', :url=>{:action=>'search', :html=> {:multipart=>true}}) do |f| %>
    <p>
        <%=f.text_field(:text)%>
        <%=submit_tag("Search")%>
    </p>
  <%end%>

这是控制台显示的内容

Started GET "/posts/search?utf8=%E2%9C%93&post%5Btext%5D=ror&commit=Search" for 127.0.0.1 at 2015-12-18 17:48:07 +0500
Processing by PostsController#search as HTML
  Parameters: {"utf8"=>"√", "post"=>{"text"=>"ror"}, "commit"=>"Search"}
  Post Load (0.0ms)  SELECT `posts`.* FROM `posts` WHERE (text LIKE '%%')

谁能解决这个问题?提前致谢。

P.S 我在 Rails 4.0.0 上运行

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 search model-view-controller params


    【解决方案1】:

    你做错了。 params[:text] 应该是 params[:post][:text]

    def search
       @posts=Post.where('text LIKE ?', "%#{params[:post][:text]}%")
    end
    

    【讨论】:

      猜你喜欢
      • 2016-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多