2016-03-06 70 views
0

我无法获得销毁方法的工作。当我点击删除时,没有任何反应。没有确认弹出,帖子不会被删除。 在控制器的方法:红宝石在轨道上摧毁不起作用

def destroy 
    @post = Post.find(params[:id]) 
    @post.destroy 
    redirect_to posts_path, :notice => "Your post has been deleted successfully." 
end 

的视图:

<%= link_to "Delete post", @post, data: { confirm: "Are you sure?" }, :method => :delete %> 

渲染HTML:

<a data-confirm="Are you sure?" rel="nofollow" data-method="delete" href="/posts/8">Delete post</a> 

application.html.erb文件是作为ROR创建它:

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <title>Myrubyblog</title> 
 
    <%= stylesheet_link_tag 'application', media: 'all', 'dataturbolinks-track' => true %> 
 
    <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> 
 
    <%= csrf_meta_tags %> 
 
</head> 
 
<body> 
 

 
<% flash.each do |key, value| %> 
 
<p><%= value %></p> 
 
<% end %> 
 
<%= yield %> 
 

 
</body> 
 
</html>

编辑和其他一切工作正常。任何想法,使这项工作?谢谢

已解决! 问题出在application.html.erb文件javascript_include_tag中。当我开始这个项目时,我得到了'Pages#home'中的'Rails ExecJS :: ProgramError',所以我将javascript_include_tag'application'更改为'default'(正如人们在此线程中所说的stackoverflow.com/questions/28421547/...)。现在我将它更新为“应用程序”,并按照它的设想运行。谢谢,凯文!

+0

是安装了,你有''jQuery的rails''宝石? –

+0

看看这是否有助于你:http://stackoverflow.com/a/15800485/1120015 –

+0

你可以看到你的控制台是否有任何JavaScript错误。 – Carpetsmoker

回答

1

试试这个

<%= link_to 'Delete post', @post, method: :delete, data: { confirm: 'Are you sure?' } %> 
+0

使其成为实例变量'@ post' –

+0

它是一个实例变量@post。 – Tadas

+0

你提到了一个错误:'未定义的方法post'我可以看到,在控制器中它是一个实例变量,但你做link_to实例变量以及? –