Ruby on Rails,带有`image_tag`的`link_to`与控制器通信

时间:2012-02-02 01:51:16

标签: ruby-on-rails hyperlink link-to

您好我正在学习Ruby On Rails,我有一点错误。

我想在我的图片上添加超链接,当我点击此图片时我想与我的功能'add_to_cart'对话。目前它正在使用 button_add ,但没有使用 link_to 功能。

我的link_to代码:

<%= link_to image_tag(product.image_url, :alt => product.title, :width => 100, :border => 1), :id => product, :action => 'add_to_cart' %>

错误:

Unknown action

The action 'show' could not be found for StoreController

超链接HTML:

<a href="/store/2">
   <img width="100" border="1" src="/assets/images/cover_test.jpg" alt="Book 2">
</a>

谢谢你的帮助:)!

------解决方案------

我无法回答我的问题,但我找到了解决方案。我的route.rb配置有问题,它与我的函数索引产生了冲突。

旧的route.rb配置:

match 'store/:id', :to => 'store#add_to_cart'

新路由.rb配置:

match 'store/add_to_cart/:id', :to => 'store#add_to_cart'

这是我的link_to代码:

<%= link_to image_tag(product.image_url, :alt => product.title, :width => 100, :border => 1), {:action => 'add_to_cart', :id => product} %>

感谢@Justin的帮助:)。

3 个答案:

答案 0 :(得分:1)

尝试这样的事情?

<%= link_to image_tag(product.image_url, :alt => product.title, :width => 100, :border => 1), {:controller => 'your_controller', :action => 'add_to_cart', :id => product} %>

(未经测试)

答案 1 :(得分:0)

link_to(body, url_options = {}, html_options = {})
# url_options, except :confirm or :method,
# is passed to url_for

第二个参数是关于url选项,第三个参数是关于html选项

学习如何查找api文档,它将避免这种错误

答案 2 :(得分:0)

我找到了解决方案。我的route.rb配置有问题,它与我的函数索引产生了冲突。

旧的route.rb配置:

match 'store/:id', :to => 'store#add_to_cart'

新路由.rb配置:

match 'store/add_to_cart/:id', :to => 'store#add_to_cart'

这是我的link_to代码:

<%= link_to image_tag(product.image_url, :alt => product.title, :width => 100, :border => 1), {:action => 'add_to_cart', :id => product} %>