Есть некоторые проблемы с вашим кодом:
Если вы используете переменные экземпляра, вам не нужно использовать :locals
. В любом случае они доступны в ваших представлениях. Так что либо используйте total_items
и используйте :locals
, либо используйте @total_items
и получите к ним доступ, как в ваших представлениях. Кстати, :locals
используются так:
haml :admin, :locals => {:items => total_items}
тогда вы можете получить доступ в admin.haml к вашему total_items
как items
Возвращаясь к вашему вопросу: в вашем файле admin.haml есть небольшая ошибка, которую легко исправить: убедитесь, что вы правильно сделали отступ. В конце концов, это то, что хамл о:
%div
%img
-items.each do |item| # I use the above mentioned :locals with items instead of total_items
%h3= item
Edit:
Вы могли бы даже сделать это проще, запрашивая предметы из вашего поля зрения:
%div
%img
-Item.all(:order=>:itemtype.desc).each do |item|
%h3= item
PS: Для чего нужен тег %img
? Это не используется в вашем примере.