如何将带有link_的确认消息添加到RubyonRails

如何将带有link_的确认消息添加到RubyonRails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,ruby-on-rails-3.2,link-to,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,Ruby On Rails 3.2,Link To,我想在link_上添加确认消息,以便与Ruby一起工作 = link_to 'Reset message', :action=>'reset' ,:confirm=>'Are you sure?' 你知道为什么它不起作用吗 试试这个: = link_to 'Reset message', {:action=>'reset'}, :confirm=>'Are you sure?' 或者更清楚一点 = link_to('Reset message', {:action=&

我想在link_上添加确认消息,以便与Ruby一起工作

= link_to 'Reset message', :action=>'reset' ,:confirm=>'Are you sure?'
你知道为什么它不起作用吗

试试这个:

= link_to 'Reset message', {:action=>'reset'}, :confirm=>'Are you sure?'
或者更清楚一点

= link_to('Reset message', {:action=>'reset'}, {:confirm=>'Are you sure?'})
提及

当您将url作为选项提供时,您将看到有3个参数,如
{:action=>…,:controller=>…}

link_to(body, url_options = {}, html_options = {})

在ruby中,如果函数调用中的最后一个参数是散列,则不需要将其包装为
{}
字符(换句话说,如果散列是最后一个参数,则可以省略该字符),因此您提供的代码将被解释为仅包含两个参数的函数调用,
'Reset message'
字符串和
{:操作=>'reset',:确认=>'确定吗?'}
散列和
:confirm=>“你确定吗?”
将被解释为
url\u选项而不是
html\u选项
,我可能弄错了,但是你没有在
:action
选项中指定控制器。你尝试过以下操作吗?假设你有
消息
资源配置在你的电脑中你的路线:

link_to 'Reset', message_path(@message), :confirm => 'Are you sure?'
编辑:以上内容已被弃用。Rails 4.0现在接受提示作为数据属性。请参阅文档(谢谢@Ricky)


查看javascript_include_标记,它应该可以正常工作:

<%= link_to("Reset message", :method => :reset, :class => 'action', :confirm => 'Are you sure?') %>
:重置,:类=>'操作',:确认=>'确定吗?)%>

观看此railscasts视频,以便更好地理解

链接到帮助程序的rails文档


首先,您应该验证您的布局是否具有jquery\u ujs。 将其包含在主应用程序中的最佳做法。js:

检查布局中是否包含application.js:

= javascript_include_tag :application
在开发模式下,查看源html并验证是否存在jquery\u ujs.js

运行服务器并验证链接标记是否具有数据确认值,例如:

<a href="/articles/1" data-confirm="Are you sure?" data-method="delete">

记不起在Rails 3中是如何做到这一点的,但在Rails 4中,您可以简单地:

<%= link_to 'Reset message', { controller: 'your_controller', action: 'reset' }, data: {confirm: 'Are you sure?'} %>

首先,我们需要了解Js包在rails应用程序中对此类警报的响应。因此,jquery_ujs包负责在rails中显示警报

因此,在application.js文件中必须有jquery&jquery\u ujs

//= require jquery
//= require jquery_ujs
现在,我们需要确认application.js文件是否包含在您所需的布局中。默认情况下,布局文件保留在视图布局文件夹中的application.html.erb中

<%= javascript_include_tag 'application' %>
如果所有内容都以相同的方式对齐,则此操作应该有效。


<%= link_to "Delete this article", article_path(article), method: :delete,
                    data: { confirm: "Are you sure you want to delete the 
                    article?"}, class: "btn btn-xs btn-danger" %>
一个按钮链接,其中
article\u path
是前缀,
(article)
传递
方法::delete
所需的
id

代码的后面部分添加了一条确认消息。

这些代码在Safari浏览器中不起作用,所以我参与了这个按钮

<%= button_to('', delete_path(), method: "delete", data: { confirm: 'Are you sure?', disable_with: 'loading...' }) %>



记住在“重置消息”和数据之间添加路径

这是您建议的新代码=link_to('reset message',{:action=>“reset”},{:confirm=>“确定吗?”})…这是html什么是“数据确认”…仍然没有打开确认消息…谢谢。
data-*
在HTML5中引入,作为私有数据的存储区域。
data confirm
被rails用来在点击链接时显示弹出窗口。@Tini…您是否在布局或页面中包含了
至少它不起作用。我认为这种样式已经被弃用了。根据rails文档,这现在是一个数据属性,即,
…,数据:{confirm:'你确定吗?}
@Ricky你确实意识到了这个问题,而且这个页面上几乎所有的答案都是在2013年5月21日发布的?现在是2014年9月。是的。请原谅我——我没有完全沉浸在stackoverflow文化中!有人问到了这个问题,在这里得到了指导,对为什么
:confirm
似乎不起作用感到困惑。
“数据确认”
w但是这并不是当前的“rails方式”。换句话说:我最好的记录方式是什么?@Ricky不,我应该刚开始更新我的答案,所以我很抱歉。我一定是经历了糟糕的一天或什么。答案用rails 4.0 api编辑。如上所述,
:confirm
现在不推荐使用,所以你必须使用它er
“数据确认”=>…
数据:{confirm:…}
。这个答案对我帮助最大;将参数分别分组为
{
}
数据-确认
部分之前,我必须要做的是。可能重复的部分似乎与指定的示例不完全相同。示例询问如何向表单提交添加确认;此问题询问如何向链接添加确认。
<a href="/message/1/reset" data-method="delete" data-confirm="Are you sure?">
= link_to 'Reset', message_path(@message), data: {method: 'delete', confirm: 'Are you sure?'}
<%= link_to "Delete this article", article_path(article), method: :delete,
                    data: { confirm: "Are you sure you want to delete the 
                    article?"}, class: "btn btn-xs btn-danger" %>
<%= button_to('', delete_path(), method: "delete", data: { confirm: 'Are you sure?', disable_with: 'loading...' }) %>
<%= link_to 'Reset Message', data: {confirm:"Are you sure?"} %>