[quote=cornelius]@tasks = Task.find(:all, :conditions => [“user_id=?”, User.id] , :include => :user )
i nic sie nie wyswietla[/quote]
Wydaje mi się, że niepotrzebnie przekombinowujesz, mając w podświadomości język SQL. Zapomnij o SQL i zacznij myśleć o obiektach i ORM.
Jak masz już usera, w zmiennej @user, to chyba wystarczy:
@tasks = @user.tasks
Zresztą wszędzie, gdzie masz relacje, to możesz się tak odwoływać. W drugą stronę też:
Następnie możesz napisać gdziekolwiek w kodzie np. @tasks[3].user i to zadziała. Pewien “problem” polega na tym, że każda taka linijka generuje zapytanie SQL, stąd opcja “:include => :user” pozwala pobrać wszystkich użytkowników w jednym zapytaniu (pytanie czy akurat potrzebujesz wszystkich tych danych). Tak czy inaczej dopóki nie oswoisz się z ActiveRecord nie myśl o “:include”, bo wszyscy wiemy, że “przedwczesna optymalizacja jest źródłem wszelkiego zła”.
Swoją drogą paginacją też bym się zajął na końcu, szczególnie że tak naprawdę nie wiadomo jak ją robić. Ta zaimplmentowana w Rails jest ponoć do bani i będzie usunięta/zastąpiona. Czytałem kiedyś o tym w “10 things you shouldn’t do in rails”. Przy większym ruchu potrafi powiesić serwer czy coś takiego. Chyba lepiej jest używać bezpośrednio obiektu Paginator albo któregoś z pluginów (widziałem przynajmniej jeden uniwersalny paginator dla ruby). Tak czy inaczej też jest to bajer, którym martwiłbym się na końcu.