[NEWBIE] dostep do zmiennych spoza action controllera

Szukam szukam, doszukac nie moge. Moim zadaniem jest zrobienie prostego systemiku na zaliczenie, moze gdy rano wstane problem sam znajdzie rozwiazanie, moze jednak ktos doradzi cos do tego czasu, bo sprawa jest trywialna :]

rents_controller.rb
class RentsController < ApplicationController
def list
puts “jestem w kontrolerze RENTS, list”
@rent_pages, @rents = paginate :rents, :per_page => 10
end
end

_list.rhtml
<% for rent in @rents %>
cokolwiek
<% end %>

list.rhtml

Listing rents

<%= render :partial => 'list' %> <%= link_to 'New rent', :action => 'new' %>

To co jest powyzej smiga swietnie, zreszta Aptana sie juz o to zatroszczyla.

Natomiast problem pojawia sie, kiedy probuje sie dostac do tego “spoza” action controllera. Wyskuje mi wyjatek, ze @rents jest nilem, a w konsoli nie pojawia sie komunikat ze jestesmy w tej metodzie.

Jak zmusic Railsy by jednak dalo sie tak zrobic?

Gdy probowalem z localsami, to z kolei nie znajdywaly one metody paginate.
Probowalem tez z roznymi rodzajami renderow, ale to bardziej po omacku.

z gory dziekuje za pomoc.

Co to znaczy “spoza action controllera”?

Spoza action controllera…

Chcialbym zeby widok customerów wyswietlał listing volumenów. To znaczy zeby w widoku “customers.rhtml” wyswietlić partial “_list.rhtml” z katalogu volumens.

EDIT: Wiem ze mozna przekazywac parametry do rendera. Problem w tym ze w widoku customersów nie moge wywołać metody “@rent_pages, @rents = paginate :rents, :per_page => 10” Bo “paginate” jest metoda nalezaca do innej klasy. No i nie wiem jak to przeskoczyc.

Żeby te zmienne były widoczne w widoku ‘customers.rhtml’ to musisz stworzyć dla tego widoku nową akcję w kontrolerze, która będzie się nazywała ‘customers’ i dać ten sam kod co masz teraz w akcji list. Teraz dostajesz nil bo do tej zmiennej nie jest nigdzie przypisywana żadna wartość.

Zainstaluj sobie plugin will_paginate (dostępny bodajże jako gem) i wtedy paginacja jest tam gdzie powinna (metoda modelu).