【问题标题】:Render show page in Bootstrap modal from index从索引以 Bootstrap 模式渲染显示页面
【发布时间】:2016-02-07 16:28:18
【问题描述】:

在 Rails 4 中,我尝试在引导模式内的索引页面上呈现 show.html.erb。

index.html.erb:

<% @links.each do |item| %>

      <h4><%= link_to (item.title), '#myModal', 'data-toggle' => 'modal' %>
        Submitted <%= time_ago_in_words(item.created_at) %> ago       
      </h4>

    <div class="modal fade" id="myModal" tabindex="-1" role="document" aria-labelledby="myModalLabel">
    <div class="modal-dialog" role="document">
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
          <h4 class="modal-title" id="myModalLabel">Modal title</h4>
        </div>
        <div class="modal-body">
        <%= render :partial => 'show_modal', :locals => { :item => item } %>
        </div>
        </div>
      </div>
    </div>
  </div>
<% end %>

_show_modal.html.erb:

<div class="col-md-offset-2 col-md-4" id="telegraph">

<h1><a href="<%= item.url %>" target="_blank"><%= item.title %></a></h1>
  <p><%= item.content %></p>
</div>

目前,模态显示良好,但无论我点击哪个链接,模态只会显示@links 内的第一个link 的数据

任何帮助都会很棒。

【问题讨论】:

    标签: ruby-on-rails twitter-bootstrap ruby-on-rails-4


    【解决方案1】:

    您需要以不同的方式命名每个模式。

    尝试将每个模态 ID 设置为 myModal-id,其中 iditem 的 ID

    例如:

       <h4><%= link_to (item.title), "#myModal-#{item.id}", 'data-toggle' => 'modal' %>
       Submitted <%= time_ago_in_words(item.created_at) %> ago       
       </h4>
    

    <div class="modal fade" id="myModal-<%= item.id %>" tabindex="-1" role="document" aria-labelledby="myModalLabel">
    

    【讨论】:

    • 我是 Rails 菜鸟,我正在尝试做 '#myModal-#{title.id}" 但它不起作用。猜猜这不是如何在那里插入 id...跨度>
    • 它必须是双引号 "myModal-#{title.id}"
    • 完美运行。谢谢!顺便说一句,它是 item.id 而不是 title.id