EDIT: Rozwiązane!
Witam! Posiadam taką konstrukcję aplikacji:
model User has_many :news
model News belongs_to :user
A routing wygląda tak, że:
/news - wyświetla wszystkie newsy
/users/5/news - wyświetla newsy użytkownika o id 5
Podczas wyświetlania newsów wyświetlam ich autora (właściciela, w tym przypadku obiekt User). W drugim przypadku wyświetlanie autora jest proste - listuję @user.news.all i dorzucam @user.nickname. Co jednak w pierwszym przypadku (listowanie poprzez News.all), kiedy jedyne, co łączy te dwa obiekty to user_id? Mogę zrobić tak:
<% @news.each do |news| %>
<h3><%= news.title %> ~ <%= User.find_by_id(news.user_id).nickname %></h3>
<div><%= news.content %></div>
<% end %>
Ale po pierwsze jest to niezgodne z konwencją MVC, ponieważ widok komunikuje się z modelem, a po drugie zakatuje to bazę danych dodatkowymi żądaniami.
W jaki w takim razie sposób mogę pobrać autora każdego newsa, w przypadku listowania ich wszystkich?
EDIT:
news.user.nickname
Rails jest genialny, temat rozwiązany ^^