现在我一直在考虑编写一个灰尘助手,使用定制的灰尘助手和节点的d3模块将条形图呈现在服务器端的灰尘文件中。我想知道是否有更好的方法,而不是像这样构造某种上下文对象传递给灰尘渲染器:
{
padding: {
top: integer,
right: integer,
bottom: integer,
left: integer
},
width: integer,
height: integer,
data: [datum, ...],
x: {
scale: {
type: string, // 'linear', 'time', 'ordinal'
range: 'extent', // optionally [lower, upper]
tick: { // if applicable
format: string, // d3 number format for linear scale
// d3 time format for time scale
args: integer | [interval, integer]
}
},
value: string, // datum[value] used for x-axis
},
y: {
...
}
}
依此类推,然后d3使用此方案呈现自定义组件并将SVG标记作为字符串返回。这对我来说似乎是一个非常冗长的选项,需要添加越来越多的属性来填充上下文,直到它变得太乱以至于管理不好,这就是为什么我想知道是否有更好的方法可能会分裂灰尘d3的各个组成部分的助手。
答案 0 :(得分:0)
我一直在考虑这个问题以及我认为将d3用作尘埃过滤器的最佳方式,如下所示:
class User < ActiveRecord::Base
serialize : news_source_ids
end
user = Emission.create(:scholarship=> { "name" => "test", "news_source_ids" => ["1", "2"]})
Emission.find(usernews_source.id).scholarship# => { "name" => "test", "news_source_ids" => ["1", "2"] }
在开始渲染灰尘之前运行d3代码。