在show.html.erb上编辑注释,而不是使用Ruby on Rails重定向到新的edit.html.erb页面

时间:2017-11-08 05:58:11

标签: html ruby-on-rails

就像标题所说的那样,我从Rails指南创建了博客应用程序,我希望能够编辑在文章上发表的评论,而无需重定向到edit.html.erb页面。我想要一个以前隐藏的div出现在屏幕中间,其上有编辑表单,文本字段填充了正在编辑的注释。这是div的图像,它将出现在屏幕中间。

Edit comment div

我知道如何通过转到edit.html.erb来编辑评论,但不是在同一页面中,或者甚至可以。

我不是在寻求css或html的帮助,但是如果有办法用js或rails来做这个很棒的话。提前谢谢!

编辑:所以Satendra的答案得到了部分显示,但这些字段不包含我想编辑的原始评论。如何使用注释填充文本字段?

1 个答案:

答案 0 :(得分:1)

按照以下步骤在同一页面上进行编辑评论。

  1. 创建部分名称​​ _edit.html.erb edit.html.erb 代码放在那里。

  2. 在屏幕中间创建一个div,用于渲染此部分。

    <div id="edit_comment" >
    
    </div> 
    
  3. :remote => true添加到您的编辑按钮链接。

    # change your path accordingly 
    <%= link_to edit_comment_path(:comment_id => comment.id), :remote => true %>
    

    :remote => true是这里最重要的部分,它首先允许整个Ajax业务。

  4. edit内的comment_controller.rb中,功能更改respond_to js

    def edit
       @comment = Comment.find(params[:id])
    
       respond_to do |format|
          format.js
       end
    end
    
  5. 创建edit.js.erb并将代码放在那里。

    $("#edit_comment").html("<%= j render(:partial => 'edit', :locals =>{ :comment => @comment }) %>");
    # use comment variable in your partial as it is passed as local.
    
  6. 完成。