Home > Mobile >  Ruby on rails - How to associate with generated folders that are nested into other folders
Ruby on rails - How to associate with generated folders that are nested into other folders

Time:07-19

I have a folder named admin that has a generated scaffolding in it named products that also has the primary_key, id, changed to ect. I then created a model called cart_products that has a belongs_to :product. When I try to use it like: @cart.cart_products.create(product: @product, quantity:), it throws a name error, saying

Rails couldn't find a valid model for Product association. Please provide the :class_name option on the association declaration. If :class_name is already provided, make sure it's an ActiveRecord::Base subclass.

So I then changed the belongs_to to belongs_to :product, :class_name => "Admin::Product" which is the name of the product model. Now I am getting an

ActiveRecord::StatementInvalid - SQLite3::SQLException: no such table: main.products

Where did main.products come from when in my database it is saved as create_table "admin_products", primary_key: "ect", force: :cascade do |t|?

CodePudding user response:

Always run after scaffolding with any model

rails db:migrate

CodePudding user response:

Is your model file admin/product.rb

class Admin::Product < ApplicationRecord

If yes, then you need to have class_name with associations as below

belongs_to :product, class_name: "Admin::Product"
  • Related