我在我的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
答案 0 :(得分:1)
您不能在单引号'%#{params[:search]}%'
将其更改为
"%#{params[:search]}%"