我正在尝试更新连接表中的连接表的布尔字段:通过rails中的关联但是值永远不会被插入并且布尔字段保持为0。
这是我的模特。
#image.rb
class Image < ActiveRecord::Base
has_many :prodimgs
has_many :products, through: :prodimgs
end
#product.rb
class Product < ActiveRecord::Base
has_many :prodimgs
has_many :images, through: :prodimgs
accepts_nested_attributes_for :prodimgs
end
#prodimg.rb - this is the joining table
class Prodimg < ActiveRecord::Base
belongs_to :products
belongs_to :image
accepts_nested_attributes_for :products
end
这是Prodimgs迁移。
class Cre t.boolean :is_main
t.boolean :is_medium
t.boolean :is_thumbnail
t.integer :product_id
t.integer :image_id
t.timestamps null: false
end
end
end
我正在尝试从产品表单中的嵌套表单中更新is_main,is_medium和is_thumbnail字段。 这是表格。
<%= form_for(@product) do |f| %>
...
<table class="table table-bordered table-hover">
<thead>
<tr>
<th>image</th>
<th>Main Image</th>
<th>Medium Image</th>
<th>Thumb</th>
</tr>
</thead>
<tbody>
<% @product.images.collect(&:image).each do |image| %>
<tr>
<td><%= image_tag image %></td>
<td><%= f.radio_button :is_main, "false", :checked => false %></td>
<td><%= f.radio_button :is_medium, "false", :checked => false %></td>
<td><%= f.radio_button :is_thumbnail, "false", :checked => false %></td>
</tr>
<% end %>
</tbody>
</table>
...
<div class="actions">
<%= f.submit %>
</div>
<% end %>
<%= tinymce %>
因此,在我将图像上传并加入到产品后,我需要使用上面代码中显示的单选框更新加入的布尔字段,这将表明它是产品图库中的主要,中等或缩略图。 我已经尝试使用cocoon gem来实现同样的目的,但我仍然没有成功更新布尔字段。 以下是我的products_controller.rb文件中的product_params。
def product_params
params.require(:product).permit(:name, :shortdescription, :description, :sku, :status, :department_ids => [], :tag_ids => [], :image_ids => [], prodimgs_attributes: [:is_main, :is_medium, :is_thumbnail])
end
关于如何解决这个问题的任何输入都会很棒! 感谢。