в нижнем коде, я пытаюсь нарисовать кучу диаграммы. У моей базы данных есть модель Person, у которой есть атрибут «имя, вес, высота, цвет, возраст» Итак, моя цель - нарисовать диаграмму для каждой строки с весом по оси x, по оси y , И цвет будет на самом деле цветом для каждого графика, например, у человека 1 есть желтый цвет, тогда диаграмма должна быть желтой (это очень сложно применить)рубин на рельсах рисунок провалился, но как получилось
Во всяком случае, я использую lazy_high_chart для реализации этого, но без везения, я потерпел неудачу без ошибок.
Но чтобы быть последовательным, вот мой код: people_controller.rb
class PeopleController < ApplicationController
#GET /people/index
#GET /people
def index
@people = Person.all
end
#GET /people/show/id
def show
@person = Person.find(params[:id])
end
#GET /people/new
def new
@person = Person.new
end
#POST /people/update
def create
@person = Person.new(person_params)
@person.save
redirect_to :action => :index
end
#GET /people/edit/:id
def edit
@person = Person.find(params[:id])
end
#POST /people/update/:id
def update
@person = Person.find(params[:id])
@person.update(person_params)
redirect_to :action => :show, :id => @person
end
#GET /people/destroy/:id
def destroy
@person = Person.find(params[:id])
@person.destroy
redirect_to :action => :index
end
def display
@people = Person.all
names = []
weights = []
heights = []
colors = []
ages = []
@people.each do |x|
names = x.name
weights = x.weight
heights = x.height
colors = x.color
ages = x.age
end
@chart = LazyHighCharts::HighChart.new('graph') do |x|
x.title(:text => "Display Data")
x.xAxis(:categories => weights, :title => names, :margin => 10)
x.yAxis(:categories => heights)
x.series(:type => 'column', :name => 'showing data', :data => weights, :color => colors)
end
end
private
def person_params
params.require(:person).permit(:name, :weight, :height, :color, :age)
end
end
routes.rb
Rails.application.routes.draw do
root 'people#index'
match ':controller(/:action(/:id(.:format)))', :via => :all
end
index.html.erb:
<h1> People list</h1>
<table>
<thead>
<tr>
<th>Name</th>
<th> Weight</th>
<th> Height</th>
<th> Color</th>
<th> Age</th>
<th colspan="4"></th>
</tr>
</thead>
<tbody>
<% @people.each do |e| %>
<tr>
<td><%= e.name %></td>
<td><%= e.weight %></td>
<td><%= e.height %></td>
<td><%= e.color %></td>
<td><%= e.age %></td>
<td><%= link_to 'Show', :controller => "people", :action => "show", :id => e %></td>
<td><%= link_to 'Edit', :controller => "people", :action => "edit", :id => e %></td>
<td><%= link_to 'Delete', :controller => "people", :action => "destroy", :id => e %></td>
</tr>
<% end %>
</tbody>
</table>
<br>
<%= link_to 'New Input', :controller => 'people', :action => 'new' %>
<%= link_to 'Display', :controller => "people", :action => "display" %>
дисплей. html.erb:
<h1> Display Result</h1>
<%= high_chart("display_res", @chart) %>
Я считаю, что мои маршруты правильные, это должно быть дело с действием отображения в блоке кода контроллера. Я прочитал пример lazy_high_chart, но кажется слишком простым и не связанным с моим делом. Любые идеи? Большое спасибо
Да, это работает, но нет данных показано, как приходят ?? Журнал обновлен, кажется, данные извлекаются, но не отображаются
Посмотрите в журнале: что на самом деле происходит? –
только что обновил его с помощью журнала – ThugForever