【发布时间】:2015-12-23 15:01:15
【问题描述】:
我正在生成一个带有确认消息的链接,但在包含确认消息的方式上遇到了问题。
我已经对rails 4.0.10 和rails 4.2.2 进行了尝试,它产生了相同的输出。
这是我的link_to 代码:
<%= link_to 'Destroy Comment', :url => [comment.article, comment], :method => :delete, :remote => true, :confirm => "are you sure?" -%>
它会生成以下链接:
<a data-remote="true" href="/articles/4?confirm=are+you+sure%3F&method=delete&url%5B%5D=4&url%5B%5D=5">Destroy Comment</a>
这显然是行不通的,因为它将 javascript 确认消息直接放入链接的 url。
我发现如果我从link_to 中删除:url =>,它似乎工作正常。
<%= link_to 'Destroy Comment', [comment.article, comment], :method => :delete, :remote => true, :confirm => "are you sure?" -%>
<a confirm="are you sure?" data-remote="true" rel="nofollow" data-method="delete" href="/articles/4/comments/5">Destroy Comment</a>
有没有办法解决这个问题并保留:url => 中的link_to?我真的很喜欢那里有 :url => 用于特殊目的。我查看了 api 文档,但找不到具体的答案。有一条评论声称这样的事情应该有效。 http://apidock.com/rails/ActionView/Helpers/UrlHelper/link_to#1227-link-to-with-as-routing
【问题讨论】:
-
你在哪里找到关于
:url选项的信息,link_to和url_for的文档都没有提到它,除了你在第三方网站上指出的评论之外没有其他提及它。还要记住 Rails 更喜欢约定而不是配置,任何 Rails 开发人员都会知道 URL 是如何构建的,而无需明确调用它:url。 -
@Leito - 它来自我正在开发的旧版 Rails 应用程序(我不是该应用程序的原始创建者)。
-
请编辑您的问题以包含您使用的 Rails 版本,这是解决此问题的关键信息。
-
更新了 rails 版本。我试过
4.0.10和4.2.2
标签: javascript ruby-on-rails ruby-on-rails-4