0

我使用rails 5,簡單的形式。在我的應用程序中有一個類別模型,並有一個OnlineProduct模型。我不知道爲什麼當我想添加一些類別到我的OnlineProduct關聯表保持爲空並且不要更改。rails:關聯tabel(has_and_belongs_to_many)不保存任何記錄

分類模型:

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 

InternetProduct控制器:

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 

並在視圖僅部分誰涉及類:

<%= f.association :categories %> 

所有類別列表在視圖(窗體),但是當我選擇其中一些不保存在數據庫中。在滑軌控制檯我這樣做

p = InternetProduct.find(5) 
p.categories = Category.find(1,2,3) 

這個保存到數據庫沒有任何問題,我該怎麼辦? 坦克閱讀本

+0

你有'OnlineProduct'連接表嗎? – inye

+0

是的。這是我的: 'class CategoriesInterBons Armanlearn

+0

編輯你的問題,並添加這種遷移,如果你添加此三個表的表模式更好。 – inye

回答

0

我找到解決方案來解決這個問題。當我們使用has_and_belong_to_many或者有其他關係,如果你想使用集合選擇simple_form,在模型中也應該是嵌套形式相關的方法,在新添加此命令

accepts_nested_attributes_for :categories 

也在控制器例如我們應該

def new 
    @internet_product = InternetProduct.new 
    @internet_product.categories.build 
end 
相關問題