从搜索结果中显示标题而不是ID

时间:2015-04-19 21:27:53

标签: ruby-on-rails elasticsearch

我花了好几个小时来解决这个问题,我迫切需要帮助。

下面的html显示正确的汽车名称,car.manufacture_id显示正确的制造商ID,除了我需要显示manufacturer.name并且无法弄清楚如何做到这一点。如何显示car.manufacture.name?

search.html.erb

<% @cars.each do |car| %>
<%= car.manufacture_id %>
<%= link_to car.name, manufacture_path(car.manufacture_id) %>
<% end %>

search_controller.rb

  def search
    if params[:q].nil?
      @cars = []
      @manufactures = []
    else
      @cars = Car.search params[:q]
      @manufactures = Manufacture.search params[:q]
    end
  end

1 个答案:

答案 0 :(得分:1)

您的汽车和制造模型是什么样的,您能为他们展示代码吗?模式也会有所帮助。如果您的模型设置正确car.manufacture.name应该有效。

如果你这样做

<% @manufactures.each do |manufacture| %>
<%= manufacture.id %>
<%= manufacture.name %>
<% end %>

这有用吗?

如果Manufacture.search params[:q]

找到制造商,这也可能有用
<%= @manufactures.find(car.manufacture_id).name %>

或者如果他们不是

<%= Manufacture.find(car.manufacture_id).name %>