Layout="home" nie działa

Witam, potrzebuje wczytanie innego layoutu dla wybranej akcji w kontrolerze. Bedzie to strona główna i będzie wyglądala trochę inaczej od innych ( w sumie beda 3 rozne layouty, maloo rozniace sie), będzie różniła się tylko topem, gdzie bedzie wyszukiwarka zamiast tekstu “witaj $$$ / wyloguj” i box po prawej z logowaniem, odnośnikiem do rejestracji i tekstu dlaczego warto się zarejestrować. Zrobiłem to tak, że stworzyłem osobny layout home.erb.html a w kontrolerze wpisałem

def index
layout=“home”

end

ale to nie dziala, nie mam pojęcia dlaczego. Jak zrobić to poprawnie, a może dla takich małych zmian jest lepsze rozwiązanie. W php wykrywałem moduł i edytowałem szablon wzgledem niego lub był defaultowy. Jak to sie robi na railsach?

Layout jest funkcją, a nie zmienną.

Czyli

layout "home"

lub

layout("home")

dzięki, i sorry za tak głupi kłopot :slight_smile:
Ale nie działa mi to w akcji index, muszę dać globalnie na początku klasy, jak to rozwiązać?

W akcji index daj:

render :layout => "other"

lub np.

respond_to do |format| format.html { render :layout => "other" } format.xml { render :xml => @items } end
ewentualnie wykorzystując metodę instancyjną layout, możesz
sobie to dostosować np. tak:

layout "other", :only => :index

zamiast :only, możesz wykorzystać też klucz :except - chyba sama nazwa wskazuje na działanie :wink:

+, dzięki