从进出口数据加载Googlesheets到fusioncharts在我的Rails应用程序.
我用来Jquery从Google工作表中获取数据,如本教程中所示https://www.sitepoint.com/interactive-javascript-charts-using-data-from-google-sheets/
undefined local variable or method 'parsedData' for #<GreetingsController:0x007fdb862e9cf8>当我尝试从这个pasedData变量中获取数据时,Rails总是给我这个错误.
data: parsedData
我不确定我在这里做错了什么,这是我第一次使用JSON将数据加载到rails app中的fusioncharts.任何帮助将非常感激
这里是Jquery片段,googlesheets变成了JSON.
var spreadsheetId = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
url = "https://spreadsheets.google.com/feeds/list/" +
spreadsheetId +
"/od6/public/basic?alt=json";
$.get({
url: url,
success: function(response) {
var data = response.feed.entry,
len = data.length,
i = 0,
parsedData = [];
for (i = 0; i < len; i++) {
parsedData.push({
label: data[i].title.$t,
value: data[i].content.$t.replace('income: ', '')
});
}
}
});
Run Code Online (Sandbox Code Playgroud)
这是rails控制器的fusionchart片段
@chart2 = Fusioncharts::Chart.new({
type: …Run Code Online (Sandbox Code Playgroud) 在我的ROR中,我想将Percentages添加到我的Piechart中,我正在使用chartkickgem来渲染饼图.我已经尝试了各种方法解决这个问题,但似乎没有办法.我也用Google搜索并查看堆栈溢出时的类似帖子.
这是我想出来的,但它没有显示%.
<%= pie_chart [["Soccer", @soccer_total], ["Basketball", @basketball_total, ["Baseball", @baseball_total], ["Other", @other_total ]], library: {legend: {labelFormat: '{name} : {y} ({percentage}%)'}} %>
Run Code Online (Sandbox Code Playgroud)
我也试过这种方法,但还是运气不错
<%= pie_chart [["Soccer", @soccer_total], ["Basketball", @basketball_total, ["Baseball", @baseball_total], ["Other", @other_total ]], library: {pieSliceText: 'value-and-percentage'} %>
Run Code Online (Sandbox Code Playgroud)
请更有经验的人帮助我吗?
更新OSCAR的答案
我按照奥斯卡答案提供的指示,但仍未显示%.
这是怎么<head>的 application.html.erb样子:
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag "https://www.gstatic.com/charts/loader.js" %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= javascript_include_tag "path/to/highcharts.js", "chartkick" %>
Run Code Online (Sandbox Code Playgroud)
这appplication.js是这样的:
//
//= require jquery
//= …Run Code Online (Sandbox Code Playgroud) 这是我在这里的第一篇文章,听起来可能非常愚蠢.我正在构建我的第一个rails应用.
我有这条线 index.html.erb
<img src="/assets/rand_front/<%= @random_image%>", style='height:50vw;width:100vw;margin-bottom:20px;' >
Run Code Online (Sandbox Code Playgroud)
我想用image_tag而不是img src
将它包装在代码中的正确方法是什么?
到目前为止我已经尝试过了 <%= image_tag ( "/assets/rand_front/<%= @random_image%>", style='height:50vw;width:100vw;margin-bottom:20px;') %>
和
<%= image_tag ( "/assets/rand_front/<%= @random_image%>"), style='height:50vw;width:100vw;margin-bottom:20px;' %>
和许多其他版本,但似乎没有工作,我做错了什么?我该怎么写呢?
这<%= @random_image%>一位是从index控制器中的方法获取此变量.
def index
@products = Product.all.order(created_at: :desc).group_by(&:category_id)
@images = ["1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg", "6.jpg", "7.jpg", "8.jpg", "9.jpg", "10.jpg"]
@random_no = rand(10)
@random_image = @images[@random_no]
end
Run Code Online (Sandbox Code Playgroud) paper_weight我在控制器中使用此代码来访问分类中所有用户的平均值Heavy。
if User.where(industry_type: 'Heavy')
.joins(:papers)
.where(papers: { paper_type: 'Officepaper' } )
.pluck('avg(paper_weight)').first.nil?
@heavy_indust_officepaper == 0
else
@heavy_indust_officepaper = User.where(industry_type: 'Heavy')
.joins(:papers)
.where(papers: { paper_type: 'Officepaper' } )
.pluck('avg(paper_weight)').first * 3
end
Run Code Online (Sandbox Code Playgroud)
然后该变量@heavy_indust_officepaper将显示在视图中。
nil问题在于,当一个或多个用户在 中输入条目时,上面的这段代码似乎无法正确计算平均值paper_type: 'Officepaper'。
我知道这一点是因为我有两个用户,其中industry_type: 'Heavy'
一个有一个条目,其中paper_type: 'Officepaper'的条目是十进制 30。另一个用户有nil条目paper_type: 'Officepaper'。
根据我的理解计算应该是30 + 0 / 2(users) = 15
然后15乘以3它应该给出45
但是变量@heavy_indust_officepaper显示90在视图中......这必须是以下结果30 * 3
有没有办法将上面代码中的 转换为 …
ruby activerecord ruby-on-rails ruby-on-rails-4 ruby-on-rails-5
我的应用程序在一个小时前被完美的工作,然后我加两列,:pick_up并:send以"订单"表,在那之后我得到这个错误
wrong number of arguments (1 for 0)
Run Code Online (Sandbox Code Playgroud)
我不明白为什么会导致这个错误.
这是orders_controller.rb:
class OrdersController < ApplicationController
include CurrentCart
before_action :set_cart, only: [:new, :create]
before_action :set_order, only: [:show, :edit, :destroy]
def index
@orders = Order.all?
end
def new
@images = ["1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg"]
@random_no = rand(5)
@random_image = @images[@random_no]
if @cart.product_items.empty?
redirect_to root_url, notice: 'Your Cart is Empty'
return
end
@order = Order.new
@client_token = Braintree::ClientToken.generate
end
def create
@order = Order.new(order_params)
if @order.save
charge
if @result.success? …Run Code Online (Sandbox Code Playgroud) ruby ×5
activerecord ×1
chartkick ×1
charts ×1
css ×1
fusioncharts ×1
html ×1
javascript ×1
json ×1