У меня есть контроллер выглядит следующим образом:will_paginate с хэш в Rails
## controllers/lhgs_controller.rb
def index
@per_page = params[:per_page] || 10
@totalsolds = Totalsold.paginate(:per_page => @per_page, :page => params[:page]).order('date asc').group_by{ |s| [s.date, s.store_id, s.nomor] }
end
И просмотров:
## index.hmtl.erb
<div id="totalsolds"><%= render 'totalsolds' %></div>
## views/_totalsolds.html.erb
<% @totalsolds.each do |(date, store, nomor), totalsold| %>
<tr>
<td><%= date.strftime("%d/%m/%Y") %></td>
<td><%= nomor %></td>
<td><%= Store.find(store).name %></td>
<% totalsold.each do |ts| %>
<td><%= ts.qty == 0 || ts.qty == nil ? "-" :prod.qty %></td>
<% end %>
<td>Rp<%= number_to_currency(totalsold.sum(&:value), :unit => "") %></td>
<td><%= link_to "edit", edit_bt_path(:store_id => store, :date => date, :nomor => nomor), :class => "btn btn-primer" %></td>
</tr>
<% end %>
...
...
<div class="row">
<div class="col-sm-6">
<% line 65 %>
<%= page_entries_info @totalsolds %>
</div>
<div class="col-sm-6">
<%= will_paginate @totalsolds, :style => 'float:right;margin-top:-5px;height:30px;' %>
</div>
</div>
я получил ошибку:
ArgumentError в Lhgs # индекс
Показаны C: /Sites/cms/app/views/lhgs/_totalsolds.html.erb где строка 65 поднята:
Переменная @lhgs кажется пустой. Вы забыли передать объект коллекции для will_paginate?
я нашел же question и solution, но я не могу понять, как использовать его для моего случая.
UPDATE:
Я не нашел нигде @lhgs
переменную, я попытался изменить @totalsolds
к @lhgs
и теперь мой контроллер lookslike:
## controllers/lhgs_controller.rb
def index
@per_page = params[:per_page] || 10
@lhgs = Totalsold.order('date asc').group_by{ |s| [s.date, s.store_id, s.nomor] }
@lhgs = @lhgs.paginate(:per_page => @per_page, :page => params[:page])
end
И это ошибка:
NoMethodError in LhgsController#index
undefined method `paginate' for #<Hash:0x4c034a0>
Использование консоли рельсов:
irb(main):001:0> @lhgs = Totalsold.order('date asc').group_by{ |s| [s.date, s.store_id, s.nomor] }
.... look at pastebin ......
irb(main):002:0> @lhgs.class
=> Hash
Я не вижу ссылку на '@ lhgs' везде. Вы уверены, что скопировали правильные файлы? – tyler
меня тоже, я смущаюсь. Да, я уверен. – itx
@tyler: Я обновляю свой вопрос. – itx