使用UI删除我的博客文章时遇到问题

时间:2011-12-06 11:15:50

标签: ruby-on-rails ruby database blogs

我对Ruby on Rails很新,所以道歉,因为这可能是一个愚蠢的问题,在这里发布。

我创建了一个博客(使用generate scaffold)。我有一些页面可以交互和编辑博客帖子,从显示所有博客帖子(“索引”)的主页开始,查看特定博客帖子的区域(“显示”)和编辑博客帖子的区域( “编辑”),以及创建新博客帖子(“新”)的区域。 我还创建了评论(再次使用生成脚手架)以应用于相关的博客文章。评论和评论的部分形式显示在“显示”页面上。

我一直在努力使其工作得很好,但最近意识到我在“索引”页面上的删除按钮不起作用。我没有提示确认删除,而是直接进入相关帖子的“节目”。

以下是索引“index”页面的片段:

<% @posts.each do |post| %>
<tr>
<td><%= post.title %></td>
<td><%= post.content %></td>
<td><%= image_tag "work/thumbnails/#{post.image}", :alt => '' %></td>
<td><%= time_ago_in_words(post.created_at) %> ago (<%= post.created_at %>)</td>
<td class="zero-out"><%= link_to 'Show', post, :class => "submit-button" %></td>
<td class="zero-out"><%= link_to 'Edit', edit_post_path(post), :class => "submit-button" %></td>
<td class="zero-out"><%= link_to 'Destroy', post, confirm: 'Are you sure?', :method => :delete, :class => "submit-button" %></td>
</tr>
<% end %>

以下是来自与删除相关的posts_controller的代码片段:

def destroy
@post = Post.find(params[:id])
@post.destroy

respond_to do |format|
  format.html { redirect_to posts_url }
  format.json { head :ok }
end
end

我还发现删除评论按钮(在每个评论旁边的“显示”页面上)已停止使用错误消息:

  

未知行动

     

找不到CommentsController

的动作'show'

作为参考,“删除评论”按钮的代码是:

<%= link_to 'Remove Comment', [comment.post, comment],
    :confirm => 'Are you sure?',
    :method => :delete %>

comments_controller中的代码片段是:

def destroy
@post = Post.find(params[:post_id])
@comment = @post.comments.find(params[:id])
@comment.destroy
redirect_to post_path(@post)
end

我完全不了解RoR的工作原理,以及这些文件如何完全相互作用以解决问题,因此非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

首先,您会错过destroy link方法调用中的箭头 纠正它。

<%= link_to 'Destroy', post, confirm: 'Are you sure?', :method => :delete, :class => "submit-button" %>

其次,你不必找到评论的帖子就可以删除它。只需这样做。

如果您想重定向回帖子,请在控制器中执行

<%= link_to 'Remove comment', comment, confirm: 'Are you sure?', :method => :delete %>
<_>在comment_controller

def destroy
    @comment = Comment.find(params[:id])
    @post = @comment.post
    @comment.destroy

    respond_to do |format|
      format.html { redirect_to @post }
      format.json { head :ok }
    end
  end

答案 1 :(得分:0)

我发现了问题 - 我已经定制了样式表,javascript文件等的链接,并且在这样做时,我遗漏了javascript文件的链接,用于支架创建的帖子和评论。

在包含这些文件的链接后,一切都恢复了。