Hmm nie wiem jak to najłatwiej opisać , bo problem jest pewnie dość prozaiczny, a mianowicie:
Mam jakas aplikacje i chce by w bocznym div zawsze byl wyswietlany jakis kod, dokładnie rzecz biorąc lista wszystkich dat w ktorych był jakiś wpis dodawany. kod do kontrolera to dajmy na to:
http://pastie.org/357801 Jest to przyklad troszeczke inny ty chcesz aby wszystko bylo autoamtycznie a tam pokazuje jak to zrobc to w ustadardyzowanych partialach _sidebar.rhtml w kazdym katalogu kontrolera.
Ogolnie w pliku layoutu mozesz jeszcze zrobic jeden duzy case (jako helper najlepiej) http://pastie.org/357803
o kontrolerze myslalem ale by byl widoczny wszedzie to musial by byc to application controller, no ale tam musial byc utworzyc jakas definicje tylko jaka i jak do niej sie odwolac, czy to ma byc cos takiego
def archs @archs = Post.find(:all, :order => ‘created_at’)
end
no i jeszcze musze wymyslic jak z tego link zrobic by pokazywalo po kliknieci te artykuly napisane w tym miesiacu
cos pewnie na wzor
link_to_unless_current (‘ta data np (January 2009 (2)’ , ’ no i cos z kontrolera @archs_s’ ???
i pewnie w kontrolerze
def arch_s
a = Post.find(:all, :where => created_at.year LIKE %Y and created_at.month LIke %M
end
A, no to kolega potrzebuje czegoś, co w Railsach <2.0 było dostępne jako komponenty, a teraz można zrobić za pomocą Rails Cells: http://cells.rubyforge.org/
hmm no wlasnie o cos takiego chodzilo, ale widze ze samemu tez to da rade napisac, wiec spoko, co do linkow to mysle ze stary php zwyczaj nie bedzie taki zly?
Uhh… nie mam wyjscia, z taka argumentacja nie wygram
A tak na seiro to nie chodzi o to czy dziala czy nie tylko jak jest Rails Ways ? Im mniej wymagasz od siebie tym gorzej twoja aplikacja bedzie wygladala na samym koncu, i tym mniej bedziesz chcial przy niej pracowac
[quote=gotar]hmm no wlasnie o cos takiego chodzilo, ale widze ze samemu tez to da rade napisac, wiec spoko, co do linkow to mysle ze stary php zwyczaj nie bedzie taki zly?
link_to … ‘AAA’, ‘/arch_s?y=aaa&m=bbb’
tylko jak sie w railsach do tablicy $_GET dobrac?[/quote]
Masz params[]
no wiec linki mam, wygladaja tak:
<% @arch_months.sort.each do |month, archs| %>
<%= link_to month.strftime('%B, %Y'), "/?y=#{month.strftime("%Y")}&m=#{month.strftime("%m")}" %>
<% @i = 0 %>
<% for arch in archs %>
<% @i += 1 %>
<% end %>
(<%= @i %>)
<% end %>
a to mam w kontrolerze:
if params[:y] && params[:m] @posts = Post.find(:all, :conditions => [‘extract(year from created_at) LIKE ? AND extract(month from created_at) LIKE ?’, params[:y], params[:m]] )
else @posts = Post.find(:all)
end
i niby ok ale w konsoli pojawia sie w zapytaniu jakies dziwne E, przy like:
SELECT * FROM “posts” WHERE (extract(year from created_at) LIKE E’2009’ AND extract(month from created_at) LIKE E’01’)
jak pozbyc sie tego E? bo chyba to psuje zapytanie?
Tak się robi linki z ekstra parametrami (tj. z końcówką typu ?y=Y&m=M)
<%= link_to month.strftime(’%B, %Y’), {:y => month.strftime("%Y"), m => month.strftime("%m")} %>
PS. Tak jak PaK napisał, straszne jest to co Ty robisz i zupełnie niezgodne z filozofią i idiomatyką Rails…
no wiem ze tak sie robi link standardowe przekazywanie przez tablice $_GET parametru m i y
i to dziala swienie linki sa ok, tylko ze w kontrolerze jest cos nie tak nie wiem czemu do kodu sql dodaje w :conditions dodatkowo “E” po LIKE
no jestes tego dosc swiadom kilka lat piszac spagetti php i ciezko teraz to jakos rozgraniczyc na mvc, brakuje wiedzy i ideologii odpowiedniej
[quote=Tomash]A, no to kolega potrzebuje czegoś, co w Railsach <2.0 było dostępne jako komponenty, a teraz można zrobić za pomocą Rails Cells: http://cells.rubyforge.org/[/quote]
Tomash: używałeś cells? Z tego co widzę to jest to coś w rodzaju Merb Parts, tylko bardziej “whackowane” w railsy. Parts dziedziczą po abstract_controller, więc można używać wszystkiego tego czego normalnie można używać w innych kontrolerach (layouty, renderowanie, filtry itp. itd.)
Szkoda, że wcześniej tego nie znalazłem - mogłoby często sporo uprościć kod aplikacji.