我今天开始使用Rails。我决定跟随官方的#34;入门"文档(http://guides.rubyonrails.org/getting_started.html)这一切都很顺利,直到我点击"删除文章部分"。我按照教程添加了一个动作:
def destroy
@video = Video.find(params[:id])
@video.destroy
redirect_to videos_path
end
我使用给定的方法呈现DELETE链接:
<td><%= link_to 'Destroy', video_path(video), method: :delete, data: { confirm: 'Are you sure?' } %></td>
不幸的是,这不起作用。永远不会调用destroy控制器,也不会删除视频。使用内置服务器,我意识到没有DELETE但只有GET请求实际到达服务器。
我认为问题在于Rails评估link_to函数的方式。渲染的链接具有以下形式:
<a data-confirm="Are you sure?" href="/videos/3" method="delete">Destroy</a>
但是,如果我将HTML标记手动更改为数据方法,可以完美地运行。显然,我需要rails将它作为数据方法呈现给它。
有人可以帮忙吗?
答案 0 :(得分:2)
尝试将link_to更改为button_to
我最近也遇到过这个问题。删除调用没有在link_to上工作。
答案 1 :(得分:0)
试试这个
<td><%= link_to 'Destroy', video_path(video), method: :delete, data: { confirm: 'Are you sure?' }, remote: true %></td>
remote: true
在DOM的某处嵌入了一些JavaScript代码,用于处理AJAX
调用和responses
..这将发送GET
请求_method=delete
} param将最终路由到destroy
方法。