Ich benutze Schienen 5, einfache Form. In meiner App gibt es ein Kategoriemodell und es gibt ein OnlineProduktmodell. Ich weiß nicht warum, wenn ich einige Kategorien zu meiner OnlineProduct Verbindungstabelle hinzufügen möchte, bleibt leer und ändert sich nicht.rails: association tabel (has_and_belongs_to_many) kein Datensatz speichern
Kategorie Modell:
class Category < ApplicationRecord
has_ancestry
has_and_belongs_to_many :internet_products
end
InternetProduct Modell:
class InternetProduct < ApplicationRecord
belongs_to :user
belongs_to :business
has_and_belongs_to_many :categories
end
InternetProduct Controller:
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
und in der Ansicht nur der Teil, der zu den Kategorien beziehen:
<%= f.association :categories %>
Alle Kategorien Liste in Sicht (Formular), aber wenn ich einige von ihnen nicht in der Datenbank speichern auswählen. in rails console mache ich das
p = InternetProduct.find(5)
p.categories = Category.find(1,2,3)
dies speichern in der datenbank ohne problem, was soll ich tun? Tanks zum Lesen dieser
Sie haben und 'OnlineProduct' Join-Tabelle? – inye
ja inye. das habe ich: 'class CategoriesInternetBons
Armanlearn
Ihre Frage bearbeiten und fügen Sie diese Migration und besser, wenn Sie Ihr Tabellenschema dieser drei Tabellen hinzufügen. – inye