0

私は次のリンクジェネレーターのビューを持っています:

- @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画像コントローラにもメソッド" "があります。

4

3 に答える 3

0

試す

= link_to tag.name、{:controller => "images"、:action => "#{tag.name)}"}

于 2012-09-27T14:06:30.440 に答える
0

後に余分な「)」があります

"#{tag.name)}"
于 2012-09-27T14:15:35.570 に答える
0

キャピタライゼーションの問題があるように私には見えます。ルートに/imagesと/Imagesの両方があります...それを修正してみてください。

于 2012-09-27T14:27:40.720 に答える