Ruby on rails Ruby/Rails简单搜索表单和空格
我在我的应用程序中实现了一个“简单搜索表单”(railscasts#37),但我想知道如何: 1.)如果关键字字段为空,或者如果已加载索引页,则无法显示任何结果(我已尝试搜索!=“”。可能有更好的方法) 2.)我可以添加一个避免搜索中出现多个空格的函数。(如果用户在搜索框中写了类似“benoit++”或“++benoit”的内容,则应显示结果) 我不想像部署在heroku上那样使用思考狮身人面像 代码如下: 在我的用户模型(user.rb)中 在我的视图中(views/users/index.html.erb)Ruby on rails Ruby/Rails简单搜索表单和空格,ruby-on-rails,ruby,search,Ruby On Rails,Ruby,Search,我在我的应用程序中实现了一个“简单搜索表单”(railscasts#37),但我想知道如何: 1.)如果关键字字段为空,或者如果已加载索引页,则无法显示任何结果(我已尝试搜索!=“”。可能有更好的方法) 2.)我可以添加一个避免搜索中出现多个空格的函数。(如果用户在搜索框中写了类似“benoit++”或“++benoit”的内容,则应显示结果) 我不想像部署在heroku上那样使用思考狮身人面像 代码如下: 在我的用户模型(user.rb)中 在我的视图中(views/users/index.h
谢谢你的帮助和资源 我将更改搜索方法:
def self.search(search)
search.blank? ? [] : all(:conditions => ['name LIKE ?', "%#{search.strip}%"])
end
某物。空白?
如果某物为零或空白,则返回true
something.strip
删除字符串开头或结尾的所有空格。如果名称可以由多个单词组成,并且您希望避免单词之间有多个空格,则可以执行search.strip.squese(“”)
哦,我认为你不需要
if@users&&@users.empty?
子句现在在您的视图中。非常感谢您的详细回答!它工作得很好!:)
<% form_tag users_path, :method => 'get' do %>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
<% end %>
<% if @users and not @users.empty? %>
<% @users.each do |user| %>
<p><%= link_to "#{user.name}", user %></p>
.
.
.
<% end %>
<% end %>
def index
@users = User.search(params[:search])
end
def self.search(search)
search.blank? ? [] : all(:conditions => ['name LIKE ?', "%#{search.strip}%"])
end