在Rails 4中使用搜索表单找不到结果

时间:2014-07-06 06:38:21

标签: ruby-on-rails ruby

我在我的Rails 4应用程序中构建一个简单的搜索功能,但它使用搜索功能显示没有结果。

我已多次尝试过并发现在我的控制器中使用"%#{params[:search]}%"始终没有返回任何内容。如果我使用像"example"这样的纯字符串,那么它可以正常工作。我的代码有什么问题吗?谢谢!

查看

<div class="row">
    <%= link_to "new post", new_post_path, :class => "tiny button" %>
    <%= form_tag posts_path, method: :get do %>
        <%= text_field_tag :search, params[:search], placeholder: "search" %>
    <% end %>
</div>
<% @post.each do |post| %>
    <h3 class="post_title">
<% end %>

控制器

class PostsController < ApplicationController
    def index
        if params[:search]
            @post = Post.where('title LIKE ?', '%#{params[:search]}%')
        else
            @post = Post.all
        end
    end 

的routes.rb

Rails.application.routes.draw do
  resources :posts
  root to: "posts#index"
end

模型

class Post < ActiveRecord::Base
    validates :title, presence: true
end

1 个答案:

答案 0 :(得分:1)

您不能在单引号'%#{params[:search]}%'

中对字符串使用插值

将其更改为

"%#{params[:search]}%"