2

是否有一种简单的 RESTful 方法可以为禁用 javascript 的人link_to提供一个后备 url?:method => :delete

例如,假设我有一个评论列表。要添加删除评论的链接,我可能会输入:

<%= link_to "Delete", comment_path(comment.id), :method => :delete %>

这将产生一个链接data-method="delete",我的 ujs 驱动程序(在我的例子中是 jquery_ujs)将变成一个 DELETE 请求。但是,当关闭 javascript 时,该链接将作为 GET 请求进行跟踪(如文档中所宣传的那样),并且我的控制器理所当然地被混淆了。

有没有解决这个问题的好方法?有Railscast 77,它显示了一种解决方案,但这似乎需要大量额外的代码,并且抛出了非常优雅的:method => :delete解决方案。我可以在禁用 javascript 时生成一个指向确认删除页面的链接。

我能想到的唯一解决方案是button_to在页面上使用 UJS 将其替换为对应的link_to. 这对我来说似乎不太正确,但也许没关系?还有其他想法吗?

4

1 回答 1

1

就我个人而言,我不喜欢将 a 映射:delete到 a的想法:get,这不是 RESTFul ...我使用的解决方案与您一直在考虑的解决方案相同,即 abutton_to而不是 the link_to,如果需要,我可以使用 CSS 来为按钮设置样式,使其看起来像一个链接。

于 2011-09-03T22:05:16.237 回答