Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 Chartkick Timeline未定义的方法`每对';对于#<;数组:&燃气轮机;在Rails 4中_Ruby On Rails 4_Chartkick - Fatal编程技术网

Ruby on rails 4 Chartkick Timeline未定义的方法`每对';对于#<;数组:&燃气轮机;在Rails 4中

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?(

我对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?(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,事情开始发生。仍在使用它,但它比以前更好。非常感谢您的帮助,我走上了正确的道路,非常感谢。