如何使用Ruby on Rails 5在模态中打开post show页面

Des*_*ner 4 ruby-on-rails modal-dialog ruby-on-rails-5

我的主页显示了帖子列表,当我点击帖子时,它会以新页面的形式打开,

但我需要留在主页并打开帖子显示页面作为模态.知道怎么样?

谢谢

Sik*_*riq 10

解决方案是假设您正在使用bootstrap ...

更改js请求的show动作

  def show
    @post = Post.find(params[id])
    respond_to do |format|
      format.js
    end
  end
Run Code Online (Sandbox Code Playgroud)

在帖子索引末尾添加此div

<div id='post-content'></div>
Run Code Online (Sandbox Code Playgroud)

您显示页面的链接现在必须看起来像这样

  <%= link_to 'View Post', post_path(post), remote: true %>
Run Code Online (Sandbox Code Playgroud)

添加一个新文件posts/show.js.erb

$('#post-content').html("<%= j render 'post_modal', post: @post %>");
$('#post-modal').modal('show');
Run Code Online (Sandbox Code Playgroud)

添加部分帖子/ _post_modal.html.erb

<div id="post-modal" class="modal fade" role="dialog">
  <div class="modal-dialog modal-lg">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times;</button>
      </div>

      <div>
         --- put all your show.html.erb code here 
      </div>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)