Ruby on rails 4 Chartkick Timeline未定义的方法`每对';对于#<;数组:&燃气轮机;在Rails 4中
我对Rails 4中的Chartkick时间线图有问题。 当页面加载时,将引发此错误: “用于#<数组:…>的未定义方法'each#u pair'” 在Chartkick代码中,如下所示Ruby on rails 4 Chartkick Timeline未定义的方法`每对';对于#<;数组:&燃气轮机;在Rails 4中,ruby-on-rails-4,chartkick,Ruby On Rails 4,Chartkick,我对Rails 4中的Chartkick时间线图有问题。 当页面加载时,将引发此错误: “用于#的未定义方法'each#u pair'” 在Chartkick代码中,如下所示 def chartkick_deep_merge(hash_a, hash_b) hash_a = hash_a.dup hash_b.each_pair do |k, v| tv = hash_a[k] hash_a[k] = tv.is_a?(Hash) && v.is_a?(
def chartkick_deep_merge(hash_a, hash_b)
hash_a = hash_a.dup
hash_b.each_pair do |k, v|
tv = hash_a[k]
hash_a[k] = tv.is_a?(Hash) && v.is_a?(Hash) ? tv.deep_merge(v) : v
end
hash_a
end
我尝试了使用to_json对代码进行多次迭代,如_json、@events.each do…、@events.map。。。企图
时间线(“图表1”、“阶段主控\阶段时间\路径”)
这表明
呈现json:Events.select(:id,:event\u types,:starttime,:endtime)。其中(project\u masters\u id:params[:proj\u id],phase\u masters\u id:params[:id])
从hash_b中可以看出,变量似乎设置正确
hash_a
{:width=>"400px", :height=>"400px", :colors=>["#B9D3EE", "#9FB6CD", "#A2CD5A", "#6E8B3D", "#FFB90F", "#E3A869"]}
hash_b
[[#<Events id: 1, event_types: "Estimating", starttime: "2015-10-05 11:15:00", endtime: "2015-10-13 21:15:00">], [#<Events id: 2, event_types: "Roll Forming", starttime: "2015-09-09 11:00:01", endtime: "2015-09-16 18:29:59">], [#<Events id: 7, event_types: "Magest On Site", starttime: "2015-09-25 11:00:01", endtime: "2015-09-25 18:29:59">]]
view:
<div id = "chart-1"> </div>
<%=
timeline("chart-1", @events.map { |evnt| [evnt] } )
%>
controller:
@events = Events.select(:id, :event_types, :starttime, :endtime).where(project_masters_id: params[:proj_id], phase_masters_id: params[:id])
respond_to do |format|
format.html
format.json {render json: @events}
end
hash\u a
{:宽度=>“400px”、:高度=>“400px”、:颜色=>[“B9D3EE”、“9FB6CD”、“A2CD5A”、“6E8B3D”、“FFB90F”、“E3A869”]
杂烩
[[#], [#], [#]]
视图:
控制器:
@事件=事件。选择(:id,:事件类型,:开始时间,:结束时间)。其中(项目\u主控程序\u id:params[:项目\u id],阶段\u主控程序\u id:params[:id])
回应待办事项|格式|
format.html
format.json{render json:@events}
结束
如果您能帮助运行此程序,我们将不胜感激。似乎您将一组
事件
传递给方法timeline
,该方法需要一组三元组(数组类型)
我不确定我是否正确地阅读了您的代码,但似乎调用timeline
可能是
timeline(“chart-1”,@events.map{| evnt |[evnt.types,evnt.starttime,evnt.endtime]}
感谢您的回复;谢谢你的回复;我做了修改,建议var Chartkick={“语言”:“en”};阶段时间线,但当我运行它时,抛出以下错误;#的“未定义方法`每个#对'”、“局部变量散列a{:宽度=>“400px”、:高度=>“400px”、:颜色=>[“#B9D3EE”、“#9FB6CD”、“#A2CD5A”、“#6E8B3D”、“#FFB90F”、“#E3A869”]散列b[“滚压成型”,Wed,2015年12月9日07:15:00 EST-05:00、2015年12月14:00和12月14:00我得到了最新的结果“时间线中的图表1,事情开始发生。仍在使用它,但它比以前更好。非常感谢您的帮助,我走上了正确的道路,非常感谢。