我正在尝试为我的复选框添加一个值。但是当我试图通过inspect元素查看它时,它就不存在了。我就是这样做的。
数据库选择:
@amenities = AmenitiesAndFeatures.where(is_amenities: true).order("name ASC")
<% x=@amenities.size/2 %>
<% @amenities.each_with_index do |amenity,i|%>
<% if i < x %>
<p><input type="checkbox" name="amenitiesAndFeaturesCheckbox" class="listing-check" value=<%@amenities[i].id%>>
<%= @amenities[i].name %></p>
<% end %>
<%end%>
有什么想法吗?将所有复选框命名为同名是否正确,以便获取所有选中的复选框。我只需要这样做?
objects["amenitiesAndFeaturesCheckbox"].each do |amenitiesAndFeatures|
listing_amenities_and_features.listing_id = listing_id
listing_amenities_and_features.amenities_and_features_id = amenitiesAndFeatures
end
答案 0 :(得分:0)
您需要在<%=
属性上使用value
,而不是<%
:
<input type="checkbox" ... value=<%= @amenities[i].id %>>
此外,在你的循环中,不需要使用@amenities[i]
,因此不需要使用each_with_index
,因为在循环的每次迭代期间,这正是amenity
。您也可以删除x
变量,只使用take
:
<% @amenities.take(@amenities.size/2).each do |amenity| %>
<p>
<input type="checkbox" name="amenitiesAndFeaturesCheckbox" class="listing-check" value=<%= amenity.id %>>
<%= amenity.name %>
</p>
<%end%>