我看了几个Railscasts,我知道这很简单,但无法设置。
实际的SEARCH本身运行正常。
如果我输入说'我们',例如,它会返回带有'we'的所有结果。很公平。
在我的listing.rb文件中,我有
def self.search(search)
s = "%#{search}%"
if search
find(:all, :conditions => ["comments LIKE ? or doctor LIKE ? or website LIKE ? or
url LIKE ? or date LIKE ?", s, s, s, s, s])
else
find(:all)
end
end
在我的listing_controller文件中,我有:
def index
@listings = Listing.search(params[:search_text])
end
所以在else部分我显然不想找到(:all)
什么是返回none或找不到的编码等价物?返回nil?
如果你在表格本身并且它是空白的并且你点击了输入,它应该什么都不返回它应该说“找不到结果”或类似的东西。
通知本身是否必须在控制器中,我的意思是我不能像渲染一样:text => “没有找到结果”或什么?
或类似
elsif
search.blank?
render [:index], flash[:notice] = 'No Results Found'
end
我知道这很简单但是已经超出了编码游戏的水平,而且一般来说对于RoR来说相对较新。
非常感谢任何输入。谢谢
答案 0 :(得分:2)
我不认为代码必须在控制器中
def self.search(search)
s = "%#{search}%"
if search
find(:all, :conditions => ["comments LIKE ? or doctor LIKE ? or website LIKE ? or
url LIKE ? or date LIKE ?", s, s, s, s, s])
else
nil
end
end
并在视野中
<% if @listings.present? %>
//some code here
<% else %>
<p>No results found</p>
<% end %>
答案 1 :(得分:0)
根据您的代码尝试更改
def self.search(search)
s = "%#{search}%"
if search
where("comments like (?) or doctor like (?)",s,s)
else
all
end
end