gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 09:01:32 25 4
gpt4 key购买 nike

当我在我的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com