0

我有一个包含来自两个模型的对象的数组:

  @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 回答