我是编程新手,我有一个关于用Ruby on Rails制作表单的问题。我正在制作一个数据库,用于存储产品的单位。这些单位在创建时最初位于storage。这个位置存储在一个列Unit model中。然后我有一个模型Store和一个模型Remission。
class Unit < ActiveRecord::Base
belongs_to :store
belongs_to :remission
attr_accessor :into_remission
end
class Remission < ActiveRecord::Base
belongs_to :store
has_many :units
accepts_nested_attributes_for :units
end
class Store < ActiveRecord::Base
has_many :units
has_many :remissions
end
商店有_many:remissions和Remission有_many:units。这个想法是,当我把一些单位在商店出售时,我必须创建一个remissions。这个remissions是我给商店的产品列表,这样我们都可以有一个商店中哪些产品的参考。所以我有一个表单来创建一个remissions,您可以在其中选择商店,将更改remissions的store_id(参考)。我还想从这个相同的表单中选择将参加这个新的remissions的单位,更改每个单位的remissions_id(参考)。为此,我在单位模型中做了一个attar_accessor:into_remissions,这样我就可以在每个单位中将其更改为true,并通过复选框结束remissions。我有很多问题,下面是我的表单代码:
<div class="row">
<div class="col-md-6 col-md-offset-3">
<%= form_for(@remission) do |f| %>
<%= render 'shared/error_messages_remissions' %>
#Here you select the store that would own the remission and the products
<div class="field">
<%= f.label :store_id, "Producto" %> <br/>
<%= f.collection_select :store_id, @stores.order(:name), :id, :name, prompt: "Select Store" %>
</div>
#Here its a dynamic table that display all the products in storage
<table id="products" class="table table-striped table-bordered" cellspacing="0" width="100%">
<thead>
<tr>
<th>Product Name</th>
<th>Remission</th>
</tr>
</thead>
<tbody>
#HERE I WANT TO MAKE A CHECK_BOX THAT CHANGES THE INTO_REMISSION VALUE FROM EACH UNIT. SO IT MARKS THE UNITS THAT WOULD TAKE PART IN THE REMISSION
<%= f.fields_for :units do |ff| %>
<% @units.each do |unit| %>
<% unless unit.sold %>
<tr>
<td><%= unit.product.name %></td>
<td>
<%= ff.label :into_remission, "Nombre de tu Marca:" %>
<%= ff.check_box :into_remission%>
</td>
</tr>
<% end %>
<% end %>
<% end %>
</tbody>
</table>
<%= f.submit "Submit", class: "btn btn-primary" %>
<% end %>
</div>
</div>
不用说,他的复选框现在显示也不工作。我不知道如何使这项工作,任何建议将是受欢迎的,因为我是新的轨道和编程。谢谢
1条答案
按热度按时间voj3qocg1#
尝试更改此设置:
变成这样:
我认为你应该先遍历单元,然后将每个单元分别传递到的字段中,这样就可以解决显示问题。