link_to没有控制器也没有动作

时间:2012-09-27 13:53:15

标签: ruby-on-rails ruby-on-rails-3 routing link-to

我有一个带有以下链接生成器的视图:

- @tags.each do |tag|
  = link_to tag.name, :controller => "images", :action => "#{tag.name}"

@tagsTag.all。它显示具有正确名称的链接,鼠标悬停显示例如

http://localhost:3000/Images/tagname

但如果我点击其中一个错误是:

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

一个标签,例如是“saturn”,所以我在routes.rb中添加了这条路线:

match '/Images/saturn'                => 'images#saturn'

导致:

Images_saturn        /Images/saturn(.:format)              images#saturn

我的图像控制器中也有一个方法“saturn”。

3 个答案:

答案 0 :(得分:0)

尝试

= link_to tag.name,{:controller => “images”,:action => “#{tag.name)}”}

答案 1 :(得分:0)

后你还有一个额外的“)”
"#{tag.name)}"

答案 2 :(得分:0)

在我看来,你有一个大写问题。你的路线中有/ images和/ Images ......你可以尝试修复吗?