Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用Ruby on Rails 5在模式中打开post Show页面_Ruby On Rails_Modal Dialog_Ruby On Rails 5 - Fatal编程技术网

Ruby on rails 如何使用Ruby on Rails 5在模式中打开post Show页面

Ruby on rails 如何使用Ruby on Rails 5在模式中打开post Show页面,ruby-on-rails,modal-dialog,ruby-on-rails-5,Ruby On Rails,Modal Dialog,Ruby On Rails 5,我的主页显示一个帖子列表,当我点击一篇帖子时,它会作为一个新页面打开 但我需要留在主页上,打开后显示页面作为模态。知道怎么做吗 谢谢解决方案假设您正在使用引导 更改js请求的显示操作 def show @post = Post.find(params[id]) respond_to do |format| format.js end end 将此div添加到posts索引的末尾 <div id='post-content'></di

我的主页显示一个帖子列表,当我点击一篇帖子时,它会作为一个新页面打开

但我需要留在主页上,打开后显示页面作为模态。知道怎么做吗


谢谢

解决方案假设您正在使用引导

更改js请求的显示操作

  def show
    @post = Post.find(params[id])
    respond_to do |format|
      format.js
    end
  end
将此div添加到posts索引的末尾

<div id='post-content'></div>

现在,指向显示页面的链接必须与此类似

  <%= link_to 'View Post', post_path(post), remote: true %>

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

$('#post-content').html("<%= j render 'post_modal', post: @post %>");
$('#post-modal').modal('show');
$('#post content').html(“”);
$('后模态').model('显示');
添加部分posts/_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>

&时代;
---将所有show.html.erb代码放在这里

最有效的方法可能是使用AJAX。您将向服务器发送一个AJAX请求,然后获取结果并使用它来填充一个模式。如果你在一个页面上只有几篇文章,你可以简单地在一个页面上呈现所有的modals,然后使用javascript来隐藏和适当地显示它们。嗯,感谢你的指导,那么我将研究AJAX。我有成百上千的东西。谢谢你,伙计!我没有使用引导,我仍然会尝试从你的方式解决。谢谢你哇!它真的起作用了!非常感谢。我正在研究你的学习方法,以便更好地学习。非常感谢。顺便问一下,你有什么建议,我如何保持网址,以便它可以共享?目前我得到的错误,似乎你已经错过了远程:在你的链接真的标记高兴地帮助。。!再次感谢你,伙计!我实际上有遥控器:真的顺便说一句