Czołem,
bardzo zielona szkoła, bo najpewniej zapomniałem o “najpodstawowszej” rzeczy, o której się dało.
Anyway, mam problem niemal identyczny do opisanego w wątku: http://rubyonrails.pl/forum/t42-Jak-pisac%3F , tj. chciałem, żeby w całej aplikacji pojawiała się lista istniejących kategorii.
W views/layouts/application.html.erb wrzuciłem zatem:
<% @categories.each do |category| %>
<%= link_to category.title, category_path(category.id) %>
<% end %>
a w application_controller.rb:
@categories = Category.all
Niestety, efekt jest niezadowalający, ponieważ Rails raczy mnie błędem (przykładowo):
[code]NoMethodError in Photos#show
Showing /home/jaqbeu/dev/rails/firerescue/app/views/layouts/application.html.erb where line #13 raised:
You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each[/code]
(i dalej linijki z application.html.erb, się rozumie).
Dodatkowo, żeby nie było, że @categories zwraca nil, bo naprawdę nic nie ma, to w innym widoku, w skrócie X (zrobionym “na potrzeby”) jest taki sam kod, jak w application.html.erb i w XController#index również jest @categories =… i tam działa to normalnie, tj. wyświetla kategorie.
Zakładam zatem, że najpewniej powinienem to @categories w ApplicationController wrzucić w jakąś funkcję, tylko za bardzo nie mam pomysłu w jaką, żeby kategorie wyświetlały się na każdej stronie…
Będę wdzięczny za dowolnego rodzaju wskazówkę, bo nawet nie mam pomysłu, jak to ugryźć…
Rails 3.0.3, jeśli to może mieć wpływ.
Pozdrawiam
jaqbeu