2011-05-08 108 views
3

我有下面的代码一个Rails应用程序在我的意见之一:的Rails:确认不显示对话框

<% if @present.taken == false %> 
    <%= link_to "I want to buy this present", :confirm => 'Are you sure you want to buy this present?', :action => "taken_toggle", :id => @present.id %> 
<% end %> 

但是,我没有得到一个JavaScript对话框显示 - 它只是似乎跳过那一点(动作的调用起作用)。

我的应用程序布局有以下几点:

<%= stylesheet_link_tag :all %> 
    <%= javascript_include_tag :defaults %> 
    <%= csrf_meta_tag %> 

所以我想我有加载必要的JavaScript。

任何想法为什么这不起作用?

回答

8

由于文档显示

http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to

使用的是旧的说法风格时要小心,因为需要额外的文字哈希:

使用尝试像这

<% if @present.taken == false %> 
    <%= link_to "I want to buy this present", { :action => "taken_toggle"}, :confirm => 'Are you sure you want to buy this present?', :id => @present.id %> 
<% end %> 
+1

作为旁注,请考虑使用'link_to_if'让您的代码更轻:http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to_if – apneadiving 2011-05-08 12:58:36

+1

'link_to_if'不是实际上也是一样的,尽管如果'@present.taken == false'文本仍然会在那里。它只是不会是一个锚标签。 – 2013-03-20 11:24:22