ruby on rails 4.2.6“删除操作”无法正常工作

时间:2016-06-20 06:47:35

标签: javascript ruby-on-rails ruby ruby-on-rails-4

我正在使用rails 4.2.6上的ruby,这是我的show.html文件

<h1><%= @post.title %></h1>
<p><%= @post.body %></p>
<p><%= @post.created_at %></p>
<%= link_to "Edit Post",edit_post_path %> | <%=link_to 'Delete Post',@post,method: :delete %>

这是我在帖子控制器中的代码

def destroy
 @post = Post.find(params[:id])
 @post.destroy
 redirect to post_path,:notice =>"your post has been deleted"
 end
end

日期未删除且显示日期,并且命令提示符内的错误为

action controller::routing error( no routing matches      [get]"/javascripts/default.js)

请帮助!

3 个答案:

答案 0 :(得分:1)

destroy方法应该是:

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

答案 1 :(得分:0)

1)。该错误并不意味着&#34;删除操作&#34;不工作,它说你的html / erb中的某个地方,你想要加载&#39; /javascripts/default.js' ;,但是你的config/routes.rb中没有这个网址的定义

2)。您提供的destroy控制器代码具有冗余end,应该是这样的:

def destroy
  @post = Post.find(params[:id])
  @post.destroy
  redirect to post_path, notice: "your post has been deleted"
end

3)。我认为你的服务器应该记录一些异常的语法错误,每当出现问题时,日志文件应该是你检查的第一件事。

答案 2 :(得分:0)

控制器中的

redirect to post_path

错误的是您重定向到显示页面,您需要在索引页面上重定向。

redirect to posts_path