【发布时间】:2010-05-27 08:55:18
【问题描述】:
我在以下代码中遇到了 :with 子句的问题。
-counter.times do |c|
-elem = @tags[c]
#{elem.name}#{link_to_remote image_tag('x.png'), :url => {:controller => 'questions', :action => 'remove_tag_from_cart'}, :with => "'tag_remove=' + #{elem}"}
如果我去掉:with 子句,那么当我点击图片链接时remove_tag_from_cart 就会被执行。但是,我不能对 elem 做任何事情,因为它不会以任何方式传递给 remove_tag_from_cart。
如果我将:with 子句留在其中,那么remove_tag_from_cart 根本不会被执行!
据我了解, :with 应该使我能够在 remove_tag_from_cart 中执行此操作:
def remove_tag_from_cart
puts params[:tag_remove].name
end
同样,如果我包含 :with 子句,则此方法不会运行。
我想要的只是将elem 或elem.id 传递给remove_tag_from_cart,以便我可以使用它(查找东西等)。这是(即使用 :with 传递它)最好/正确的方法吗?如果没有,我的替代方案是什么?
【问题讨论】:
-
请发布您生成的 html 是什么?您想要什么?
-
嗯,这段代码存在于另一个 Ajax 调用中呈现的部分中,所以我不知道如何查看生成的 html。
-
问题正如我所说:#{elem.name}#{link_to_remote image_tag('x.png'), :url => {:controller => 'questions', :action => 'remove_tag_from_cart'}, :with => "'tag_remove=' + #{elem}"} 包含 :with 子句并且不执行 remove_tag_from_cart 方法。当我删除 :with 子句时 - 也就是说,当它只是 #{elem.name}#{link_to_remote image_tag('x.png'), :url => {:controller => 'questions', :action => 'remove_tag_from_cart'}} -- remove_tag_from_cart 正确执行。
标签: ruby-on-rails ajax haml