Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby/Rails简单搜索表单和空格_Ruby On Rails_Ruby_Search - Fatal编程技术网

Ruby on rails Ruby/Rails简单搜索表单和空格

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

我在我的应用程序中实现了一个“简单搜索表单”(railscasts#37),但我想知道如何:

1.)如果关键字字段为空,或者如果已加载索引页,则无法显示任何结果(我已尝试搜索!=“”。可能有更好的方法) 2.)我可以添加一个避免搜索中出现多个空格的函数。(如果用户在搜索框中写了类似“benoit++”或“++benoit”的内容,则应显示结果)

我不想像部署在heroku上那样使用思考狮身人面像

代码如下:

在我的用户模型(user.rb)中

在我的视图中(views/users/index.html.erb)


谢谢你的帮助和资源

我将更改搜索方法:

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