ruby-on-rails - 搜索不起作用。获取所有结果而不是特定结果 Ruby on Rails

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

当我在 Rails 应用程序中运行搜索帖子时,我会显示数据库中存在的所有帖子,而不是匹配的结果。

这是我的搜索 Controller 方法:

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

search.html.erb 是:

<table class="table table-striped" summary="All posts">
    <% @posts.each do |post| %>
    <tr><td>&nbsp</td></tr>
    <tr>
        <td>Post #<%=post.id%>   </td>
        <td><%=post.text%></td>
        <%if post.image_file_name%>
        <td>
        <%=image_tag post.image.url %>
        </td>
        <%end%>
    </tr>

    <tr>
        <td><%= link_to("Like", {:action=>'#', :id=>post.id}, :class => 'action upvote')%></td>
    </tr>
    <%end%>
    </table>

此外,我尝试将这些放入我的模型中:

scope :search, lambda {|query|
        where (["text LIKE ?",  "%#{query}%"])
    }
def self.search(search)
        if search
            find(:all, :conditions=>['text' 'LIKE ?', "%#{params[:search]}%"])
        else
            find(:all)
        end
    end

但我得到了相同的结果。任何人都可以解决这个问题吗?谢谢。

更新 1.0:

以下是位于 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%>

更新1.1

这是 Gemfile:

source 'https://rubygems.org'
gem 'rails', '4.0.0'
gem 'mysql2','~> 0.3.11'
gem 'paperclip', '~>3.0'
gem 'sass-rails', '~>4.0.0'
gem 'bootstrap-sass', '~>3.2.0.2'
gem 'autoprefixer-rails'
gem 'acts_as_votable', '~>0.10.0' 
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'therubyracer', platforms: :ruby
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 1.2'
group :doc do
  gem 'sdoc', require: false
end

最佳答案

尝试使用

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

例如:

> Post.where('text LIKE ?', '%SomeText%')
SELECT `posts`.* FROM `posts` WHERE (text LIKE '%SomeText%')

参见reference ,第 2.2 节

关于ruby-on-rails - 搜索不起作用。获取所有结果而不是特定结果 Ruby on Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34341721/

相关文章:

ruby-on-rails - 在 Rails 多态关联中查找父项

ruby-on-rails - 为什么 Rubymine 无法识别我的命名空间继承 Controller ?

ruby - 获取定义方法的名称

ruby - 使用 Chef Recipe 更新 .bashrc

ruby-on-rails-4 - 为什么这些嵌套的无作用域 block 在 Rails 3 中工作时不能删除 Rails 4 中的 default_scope?

ruby - Rails : I installed Ruby, 现在 "bundle install"不起作用

ruby-on-rails - 使用 Devise 时如何构建经过身份验证的路由?

ruby-on-rails - 当我执行 "bundle update"时,我从不在我的 gemfile 中的 gem 收到错误。我如何忽略这种依赖?

javascript - 将 text_field 值作为 Rails 中的参数传递给 will_paginate

ruby - `require' : cannot load such file -- rdoc/usage (LoadError)