Mam widok z następującym generatorem linków:
- @tags.each do |tag|
= link_to tag.name, :controller => "images", :action => "#{tag.name}"
@tags
jest Tag.all
. Wyświetla linki o poprawnych nazwach, po najechaniu myszą pokazuje m.in.
http://localhost:3000/Images/tagname
ale jeśli kliknę jeden, błąd to:
No route matches {:controller=>"", :action=>""}
Jak to powiedzieć? :controller
jest pusta, gdy określiłem :controller => "images"
?
Trasy grabie (odpowiednia część):
images GET /images(.:format) images#index
POST /images(.:format) images#create
new_image GET /images/new(.:format) images#new
edit_image GET /images/:id/edit(.:format) images#edit
image GET /images/:id(.:format) images#show
PUT /images/:id(.:format) images#update
DELETE /images/:id(.:format) images#destroy
tags GET /Images(.:format) tags#index
POST /Images(.:format) tags#create
new_tag GET /Images/new(.:format) tags#new
edit_tag GET /Images/:id/edit(.:format) tags#edit
tag GET /Images/:id(.:format) tags#show
PUT /Images/:id(.:format) tags#update
DELETE /Images/:id(.:format) tags#destroy
Jeden tag np. jest "saturn
", więc dodałem też tę trasę w routes.rb
:
match "/Images/saturn" => "images#saturn"
który prowadzi do:
Images_saturn /Images/saturn(.:format) images#saturn
ja też mam metodę”saturn
" w moim kontrolerze obrazów.
Odpowiedzi:
0 dla odpowiedzi № 1Wygląda na to, że masz problem z wielkimi literami. Masz w swoich trasach zarówno /images, jak i /Images ... Czy możesz spróbować to naprawić?
0 dla odpowiedzi nr 2
Próbować
= link_to tag.name, {:controller => "obrazy", :action => "#{tag.name)}"}
0 dla odpowiedzi № 3
Masz dodatkowe „)” po
"#{tag.name)}"