Mam w routes.rb ustawione:
resources :entries
Jak zrobić, żeby [color=blue]/links[/color] kierowało na to samo co [color=blue]entries?type=0[/color] i jeżeli się da, żebym miał helper links_path
Mam w routes.rb ustawione:
resources :entries
Jak zrobić, żeby [color=blue]/links[/color] kierowało na to samo co [color=blue]entries?type=0[/color] i jeżeli się da, żebym miał helper links_path
nie testowane co prawda, ale spróbuj:
match “/links” => “entries#index”, :as => :links, :defaults => { :type => 0 }
Dzieki, działa. To jeszcze, żeby nie wrzucać do Zakładu Patologii Kodu
Da się to jakoś w jedną strukturę ogarnąć?
match '/linki' => 'entries#index', as: :links, defaults: {type: 0}
match '/posty' => 'entries#index', as: :posts, defaults: {type: 2}
Co prawda nie czuję się osobą w pełni kompetentną w kwestiach routingu, ale według mnie nie da się tego uprościć, oraz nie ma sensu (jeżeli są faktycznie tylko dwa przypadki).
Ok, a jeszcze jedno, mam teraz sortowanie w oparciu o params[:order] == 0, 1 albo 2
0 == popularne
1 == nowe
2 == najlepsze
I teraz chciałbym zrobić coś takiego, że mam /linki/popularne , /linki/nowe, /linki/najlepsze i podobnie z postami. Jak to najlepiej ogarnac?
Bo teoretycznie mógłbym wszystkie kombinacje opisać ręcznie np.
match '/linki/popularne' =>'entries#index', as: :popular_links, defaults: {type:0, order:0}
match '/linki/nowe' =>'entries#index', as: :new_links, defaults: {type:0, order:1}
itd.
ale to chyba w jakiś blok da się złapać?
match '/linki/:order' =>'entries#index', as: :ordered_links, defaults: {type:0}, :order => /najlepsze|nowe|popularne/
To powinno zadziałać. Nie testowałem.
I metoda do generowania linków:
ordered_links_path('najlepsze')
Zweryfikuj to, czy działa i daj znać.
Ale nie widzę tutaj nigdzie ustawianego params[:order] na 0,1,2