我想在form_for中呈现一组字符(这样我就可以在每个check_box_tag
内使用character_item
一次发送多个字符。我正在使用以下代码,但它有问题。只有第一个字符在表单内呈现,其余字符出现在表单之外。我做错了什么?
<%= form_for(:message, url: :messages, method: :post, html: { id: "message_form" }
) do |f| %>
<% if characters.any? %>
<% characters.each do |character| %>
<%= render "characters/character", character: character, f: f %>
<% end %>
<% end %>
<% end %>
这会产生以下html:
<form id="message_form" enctype="multipart/form-data" action="/messages" accept-charset="UTF-8" method="post">
<div class="character_item" id="character_alfred">
</form>
<div class="character_item" id="character_barney">
<div class="character_item" id="character_chas">
<div class="character_item" id="character_dean">
编辑
我已将问题缩小到这段代码。当我删除它时,布局很好:
<%= button_to destroy_relationship_path(
params: {
following_callsign: @character.callsign,
followed_callsign: followedcallsign,
viewed_callsign: viewedcallsign
}
),
class: 'btn btn-default btn-xs post_button',
id: 'unfollow-eye',
remote: true,
method: :delete do %>
<span class="glyphicon glyphicon-sunglasses" aria-hidden="true"></span>
<% end %>
有人能看出它有什么问题吗?我怀疑按钮代码没有任何问题,我认为这与在窗体中有一个按钮有关。我不知道。像往常一样,我感到困惑。
答案 0 :(得分:0)
原来你不能在表单中放一个按钮,因为它会关闭表单。看到这个答案:
https://stackoverflow.com/a/34644553/346613
解决方案是将所有button_to
转换为link_to
。