我使用rails 5,简单的形式。在我的应用程序中有一个类别模型,并有一个OnlineProduct模型。我不知道为什么当我想在我的OnlineProduct关联表中添加一些类别时保持为空并且不会改变。
类别模型:
https://testar.se/sv/sv/test
InternetProduct模型:
class Category < ApplicationRecord
has_ancestry
has_and_belongs_to_many :internet_products
end
InternetProduct控制器:
class InternetProduct < ApplicationRecord
belongs_to :user
belongs_to :business
has_and_belongs_to_many :categories
end
并且在视图中仅显示与类别相关的部分:
def new
@internet_product = InternetProduct.new
end
def create
@internet_product = InternetProduct.new(internet_product_params)
respond_to do |format|
if @internet_product.save
format.html { redirect_to @internet_product, notice: 'Internet product was successfully created.' }
format.json { render :show, status: :created, location: @internet_product }
else
format.html { render :new }
format.json { render json: @internet_product.errors, status: :unprocessable_entity }
end
end
end
private:
def internet_product_params
params.require(:internet_product).permit(:name, :description, :mainpic, :terms_of_use,
:real_price, :price_discount, :percent_discount,
:start_date, :expire_date, :couponـlimitation, :slung,
:title, :meta_data, :meta_keyword, :enability, :status,
:like, :free_delivery, :garanty, :waranty, :money_back,
:user_id, :business_id,
categoriesـattributes: [:id, :title])
end
视图(表单)中的所有类别列表但是当我选择其中一些不保存在数据库中时。在rails console中我这样做
<%= f.association :categories %>
这保存到数据库没有任何问题,我该怎么办? 用于阅读本文的坦克
答案 0 :(得分:0)
我找到解决方案来解决这个问题。当我们使用has_and_belong_to_many或任何其他关系时,如果你想在simple_form中使用集合选择,在模型中也应该添加这个命令用于嵌套表单
accepts_nested_attributes_for :categories
也在控制器的相关方法中,例如在新的我们应该
def new
@internet_product = InternetProduct.new
@internet_product.categories.build
end