1

私はいくつかの Railscast を見てきましたが、これは非常に単純ですが、セットアップすることはできません。

実際の SEARCH 自体は正常に動作しています。

たとえば、「we」と入力すると、「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

私のlistings_controllerファイルには次のものがあります:

def index
  @listings = Listing.search(params[:search_text])
end

したがって、else の部分では、明らかに find(:all) は必要ありません。

return none または find none に相当するコーディングは何ですか? ゼロを返しますか?

フォーム自体にいて空白のときに Enter キーを押すと、何も返されず、「結果が見つかりません」などと表示されます。

通知自体がコントローラーにある必要がありますか? render :text => 'No results found' などのようにできませんでしたか?

または何かのような

elsif
  search.blank? 
  render [:index], flash[:notice] = 'No Results Found'
end

私はこれが非常に単純であることを知っていますが、コーディングゲームから少し離れており、一般的に RoR は比較的新しいものです。

どんな入力でも大歓迎です。ありがとう

4

2 に答える 2

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 %>
于 2012-10-10T15:02:29.057 に答える
0

コードに従ってこれを変更してみてください

def self.search(search)
    s =  "%#{search}%"
    if search
      where("comments like (?) or doctor like (?)",s,s)
    else
     all
    end
  end
于 2012-10-10T14:58:05.010 に答える