Chce sobie wyświetlić posty które są umieszczone w konkretnej kategorii.
z konsoli zapytanie zdaje rezultat:
Post.find(:all, :conditions => ["cat_id=?", "3"])
gorzej jest bo nie wiem jak mam przekazać to cat_id, tutaj jest 3 natomiast jak mam listę jako linki kategorii wyświetlanej z takiej pętli:
<% @listakategori.each do |listakategori| %>
<%= link_to listakategori.name, listakategori %>
<% end %>
gdzie wyświetlają mi się linki oczywiście do kategorii, ale konstrukcja tego linka powinna być taka żeby prowadziła do efektu wyświetlania Post.find(:all, :conditions => [“cat_id=?”, “3”]) przy czym w zależności jaką kategorię kliknę a tego już nie wiem jak zrobić
to jak dla mnie tak samo jak wyswietlnie komentarzy ktore sa w jakims poscie, tylko inaczej to sobie nazwales, to zwykla relacja 1 do wielu, jak? railscast, blog in 15 minutes in rails 2 gdzies w polowie.
[quote=sevos]<% @categories.each do |category| %>
<%= link_to category.name, category_path(category) %>
<% end %>
w routes.rb:
map.resource :category
[/quote]
kod powyżej wyświetli kategorie z tego co mi się wydaje. Takie coś mam. Dodaje kategorie usuwam i wyświetlam. Problem mam taki, że chce wyświetlić po kliknieciu na link kategorii wszystkie posty, które do tej kategorii należą.
a tak najlepiej to wrzuce w zip do ściągnięcia te wypociny:
W zip? Oszalałeś? Weź to daj na githuba, pastie albo inne tego typu zabawki. Niewielu osobom będzie się chciało ściągać, rozpakowywać i otwierać w edytorze pliki
w jednej z … wielu prób nawet nie napisze ile ich było, to miałem taką wersję tylko robiłem błąd w miejscu gdzie jest @cat.id, bo pisałem cats.id i jakimś joins’em kombinowałem, a tu tak nie wiele trzeba było.
if search
find(:all, :conditions => [‘user_id LIKE ?’, “%#{search}%”])
else
find(:all)
end
end[/code]
i jest ok, no ale zamiast user_id powinno się wyszukiwać po jego loginie, a do tego dostaję się aby wyświetlić przez:
<% @gos.each do |go| %>
<%=h go.user.login %>
<% end %>
w kontrolerze mam:
@user = User.find(:all)
@gos = Go.search(params[:search])
i jak to go.user.login wpisać zamiast user_id żeby wyszukiwać po loginie ?
[quote=tpl]w zasadzie trochę mi podpowiedziałeś żeby spojrzeć na to trochę inaczej i taki kod zadziałał z joinem:
if search
find(:all, :conditions => ['login LIKE ?', "%#{search}%"],
:joins => [:user])
else
find(:all)
end
[/quote]
Tylko z takim zapytaniem musisz sam przypilnować sql injection. Czyli:
[quote=drogus][quote=tpl]w zasadzie trochę mi podpowiedziałeś żeby spojrzeć na to trochę inaczej i taki kod zadziałał z joinem:
if search
find(:all, :conditions => ['login LIKE ?', "%#{search}%"],
:joins => [:user])
else
find(:all)
end
[/quote]
Tylko z takim zapytaniem musisz sam przypilnować sql injection. Czyli: