Rails 3.1,无法生成link_to image_path?

时间:2011-11-30 22:32:30

标签: ruby-on-rails ruby-on-rails-3.1 asset-pipeline link-to

我想制作一个使用我资产中的图像的相当简单的图像链接。得到奇怪的错误。首先我试过了:

<%= link_to assets_path "town.png", 'index' %>

并收到错误

Started GET "/" for 127.0.0.1 at Wed Nov 30 17:27:10 -0500 2011
Processing by PagesController#intro as HTML
Rendered pages/intro.html.erb within layouts/application (114.9ms)
Completed 500 Internal Server Error in 124ms

ActionView::Template::Error (undefined method `assets_path' for #<#<Class:0x10fdc4898>:0x10fdaad58>):
1: <body onload="init();">
2:  <div id = "wrapper2">
3:  <div class="intro_txt">
4:      <%= link_to assets_path "town.png", 'index' %>
5:      <br><br>
6:  </div>
7:  </div>
 app/views/pages/intro.html.erb:4:in     `_app_views_pages_intro_html_erb__1651075534_2280428740'
然后我尝试了旧的

<%= link_to image_tag "town.png", 'index' %>

并得到了这个奇怪的错误

ActionView::Template::Error (undefined method `symbolize_keys!' for "index":String):
1: <body onload="init();">
2:  <div id = "wrapper2">
3:  <div class="intro_txt">
4:      <%= link_to image_tag "townProjectText.png", 'index' %>
5:      <br><br>
6:  </div>
7:  </div>
app/views/pages/intro.html.erb:4:in `_app_views_pages_intro_html_erb__1651075534_2279838600'

怎么办?

4 个答案:

答案 0 :(得分:4)

<%= link_to image_tag('town.png'), 'index' %>

加上一些括号

答案 1 :(得分:3)

您需要一些()

<%= link_to image_tag("town.png"), pages_path %>

此外,您需要使用image_tag

答案 2 :(得分:1)

<%= link_to image_tag("town.png"), image_path %> 

如果您希望它单独转到带有图像的其他页面

答案 3 :(得分:0)

是的,一些括号可能会有所帮助。尝试这样的事情:

<%= link_to(image_tag("town.png", :alt => 'Town Image'), index_url) %>