私は次のリンクジェネレーターのビューを持っています:
- @tags.each do |tag|
= link_to tag.name, :controller => "images", :action => "#{tag.name}"
@tags
ですTag.all
。正しい名前のリンクが表示され、マウスオーバーすると次のように表示されます。
http://localhost:3000/Images/tagname
しかし、1つをクリックすると、エラーは次のようになります。
No route matches {:controller=>"", :action=>""}
:controller
私が指定したときにどうして空であると言うことができます:controller => "images"
か?
レーキルート(関連部分):
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
たとえば「」というタグが1つあるsaturn
ので、このルートも次のように追加しましたroutes.rb
。
match '/Images/saturn' => 'images#saturn'
これは次のことにつながります:
Images_saturn /Images/saturn(.:format) images#saturn
saturn
画像コントローラにもメソッド" "があります。