Я пытаюсь показать значения массива, используя каждый месяц в год от контроллера, но ничего не показываю.Невозможно отобразить значения массива многопроцессор от контроллера
Вот информация и демонстрация:
CREATE TABLE player_scores (id INT,name text,date_score date,goals INT);
CREATE TABLE months (id INT,name text);
INSERT INTO player_scores VALUE
(1, 'PIZARRO' , '2015-01-02', 4),
(2, 'ROBBEN' , '2015-02-24', 2),
(3, 'RIBERY' , '2015-03-02', 4),
(4, 'GOTZE' , '2015-04-24', 2),
(5, 'NEIWER' , '2015-05-02', 4),
(6, 'DANTE' , '2015-06-24', 2),
(7, 'LEWANDOSKI', '2015-07-02', 4),
(8, 'RAFINHA' , '2015-07-02', 4),
(9, 'GUARDIOLA' , '2015-11-02', 3);
INSERT INTO months VALUE
(1, 'jan'),
(2, 'feb'),
(3, 'mar'),
...
(12,'dec');
Здесь контроллер:
def germany_world_cup
@months= Month.all
## THIS LINE WILL REPEAT THE QUERY 12 TIMES FOR EACH MONTH JANUARY TO DECEMBER
@months.each do |m|
@query = PlayerScore.find_by_sql("SELECT count(*) AS count_all FROM player_scores WHERE YEAR(date_score)=2015 AND MONTH(date_score)='#[m.id}' ")
end
end
Вот вид с проблемой (не показывает значения):
<% @query.each do |q| %>
<%= q.count_all %> ### IS SHOWING only 0 as result
<% end %>
Вот мой журнал фактически работает, но не отображается на вид:
select count(*) as count_all from player_scores where month(date_score)=1 and year(date_score)=2015
select count(*) as count_all from player_scores where month(date_score)=2 and year(date_score)=2015
...
select count(*) as count_all from player_scores where month(date_score)=12 and year(date_score)=2015
Согласно рельсам sintaxis, чтобы показать значение от контроллера
<% @var.each do |v| %>
<%= v.column_name %>
<% end %>
Я попробовал этот код, чтобы инспектировать значения, но ничего не получил:
<%= @query.inspect %> ### I got " [#] " as result
Я попробовал этот код:
<% @query[0].each do |q| %>
<%= q.count_all %> ### I GOT THIS ERROR "undefined method `each' "
<% end %>
Я хочу показать valus из массивов в контроллере
Пожалуйста, кто-нибудь может сказать мне, чтобы показывать значения?
Заранее спасибо.
Вашего цикл будет повторять запрос, в 12 раз, но каждый раз в цикле он просто перезаписывает '@ query' экземпляра переменной –
Так есть ли способ исправить это? –
Вы можете сделать '@queries = []', тогда выполните свой цикл, но присвойте результат переменной query, так что вы помещаете все их в массив, например. '@queries << PlayerScore.find_by_sql (my_query)' в вашем цикле –