将值分配给数据库pull中的复选框

时间:2013-08-08 09:20:53

标签: ruby-on-rails database activerecord checkbox

我正在尝试为我的复选框添加一个值。但是当我试图通过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

1 个答案:

答案 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%>