0

2 つのモデルのオブジェクトを含む配列があります。

  @search_results = User.find(:all, :conditions => ['name LIKE ?', "%#{params[:query]}%"])
  @search_results += Book.find(:all, :conditions => ['title LIKE ?', "%#{params[:query]}%"])

次に、次のように解析しようとしました。

<% @search_results.each do |result| %>
  <% if result.title %>
    <%= link_to result.title, result %>
  <% else %>
    <%= link_to result.name, result %>
  <% end %>
<% end %>

私は、if ステートメントが (タイトルを持っていない) ユーザーからの本 (タイトルを持っている) を解析することを望んでいました。残念ながら、if ステートメント自体が「Undefined method `title' for #」というエラーをスローします。オブジェクトが属しているモデルを特定するには、他に何ができますか?

PS。共有属性 page_views で結果をランク付けできるように、両方のモデルを同じ配列に保持したいと考えています。

4

1 に答える 1

3

あなたがしたい

result.class.name

参考:Rubyのクラス名を取得するには?

于 2012-07-17T19:22:56.923 に答える