gpt4 book ai didi

ruby-on-rails - Rabl 多模合集

转载 作者:数据小太阳 更新时间:2023-10-29 07:05:50 24 4
gpt4 key购买 nike

我正在使用 RABL 输出 Sunspot/SOLR 结果集,搜索结果对象由多种模型类型组成。目前在 rabl View 中我有:

object false

child @search.results => :results do
attribute :id, :resource, :upccode
attribute :display_description => :description

code :start_date do |r|
r.utc_start_date.to_i
end

code :end_date do |r|
r.utc_end_date.to_i
end

end

child @search => :stats do
attribute :total
end

以上适用于单个模型;但是,当@search.results 集合中有多个模型类型时,它会失败,因为这两个类没有相同的实例方法。有谁知道如何根据类型具有不同的属性?最终,最好根据对象的类型有条件地在结果集合中扩展不同的模板。类似于下面的伪代码:

child @search.results => :results do |r|
if r.class == Product
extends "product/base"
else
extends "some other class base"
end
end

最佳答案

您可以完全控制“节点”并在“最坏”情况下完全避免此问题:

node :results do
@search.results.map do |r|
if r.is_a?(Product)
partial("product/base", :object => r)
else # render other base class
partial("other/base", :object => r)
end
end
end

这有帮助吗?

关于ruby-on-rails - Rabl 多模合集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8328473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com