我正在尝试制作一个前端,如果单击按钮“租用”,它将呈现一个Modal
的引导程序,我需要在其中{{1为了租这个项目。我目前正在获取最新项目,而不是current_item
。
_itemviewer.html.erb
current_item
_rent_modal.html.erb 中的
<% @items.each_with_index do |item, j| %>
<% if item.user != current_user %>
<%= link_to 'Rent', '#rentModal', class: 'btn btn-success', "data-toggle" => "modal", "data-target" => "#rentModal"%>
<%= render partial: "layouts/rent_modal", locals: {current_item: item } %>
<% end %>
<% end %>
答案 0 :(得分:1)
问题在于您创建了许多具有相同ID的模式的链接。
<% @items.each_with_index do |item, j| %>
<% if item.user != current_user %>
<%= link_to 'Rent', '#rentModal', class: 'btn btn-success', "data-toggle" => "modal", "data-target" => "#rentModal"%>
<%= render partial: "layouts/rent_modal", locals: {current_item: item } %>
<% end %>
<% end %>
就是这样,对于每个项目,你创建了一个新的链接到你的模态,标识为#rentModal
,最后一个模态是最新项目之一;这可能是被渲染的原因。
因此您可能需要为每个项目创建不同的模态和链接ID。 像下面的代码。
<% @items.each_with_index do |item, j| %>
<% if item.user != current_user %>
<%= link_to 'Rent', "#rentModal_#{j}", class: 'btn btn-success', "data-toggle" => "modal", "data-target" => "#rentModal_#{j}"%>
<%= render partial: "layouts/rent_modal", locals: {current_item: item, index: j } %>
<% end %>
<% end %>
在这里您可以看到我们使用j
来定义模态ID,您还需要在模态html部分中使用该ID,因此在_rent_modal.html.erb
中您需要使用相同的ID每个项目,这就是为什么我们将index
作为局部传递给那个局部的。你还需要将代码包含在具有模态id的div中的_rent_modal.html.erb
内。您可以看到如何定义模态here。