一个动作在两个不同的类上进行两次搜索。第一类具有属性price, a, b, c
,而第二类具有属性price, d, e, f
。
控制器动作然后可以将两个数组求和并按价格排序
@all_results = @search_results_first + @search_results_second
可以在其中调用视图的地方,具有针对列数据进行逻辑调整的原点@search_result
@all_results.each do |result|
<tr>
if @search_results_first.include?(result)
<td><%= result.a %></td> <td><%= result.b %></td> <td><%= result.c %></td> <td><%= result.price %></td>
else
<td><%= result.d %></td> <td><%= result.e %></td> <td><%= result.f %></td> <td><%= result.price %></td>
end
</tr>
end
答案 0 :(得分:0)
您快到了。您可以在控制器内部对合并的数组进行排序:
@all_results = @search_results_first + @search_results_second
@all_results = @all_results.sort_by(&:price)
答案 1 :(得分:0)
在您的控制器中,进行如下排序:
@all_results = (@search_results_first + @search_results_second).sort_by(&:price)
在您看来,您可以check the type of object来呈现不同的属性:
@all_results.each do |result|
<tr>
if result.is_a?(ClassFirst)
<td><%= result.a %></td>
<td><%= result.b %></td>
<td><%= result.c %></td>
else
<td><%= result.d %></td>
<td><%= result.e %></td>
<td><%= result.f %></td>
end
<td><%= result.price %></td>
</tr>
end