0

チェックボックスに値を追加しようとしています。しかし、要素を検査して表示しようとすると、そこにはありません。これが私のやり方です。

データベースの選択:

@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
4

1 に答える 1

0

<%=ではなく、value属性で使用する必要があり<%ます。

<input type="checkbox" ... value=<%= @amenities[i].id %>>

また、ループ内では を使用する必要がないため@amenities[i]、 を使用する必要はありません。これは、ループの各反復中にeach_with_index正確に行われるためです。変数を削除して、次のように使用amenityすることもできます。xtake

<% @amenities.take(@amenities.size/2).each do |amenity| %>
  <p>
    <input type="checkbox" name="amenitiesAndFeaturesCheckbox" class="listing-check" value=<%= amenity.id %>>
    <%= amenity.name %>
  </p>
<%end%>
于 2013-08-08T12:39:13.897 に答える