im getting error when im tring to save my object of type Wedding. I have many foreign keys to the same class and on create action i gets NameError (uninitialized constant Wedding::user)
Wedding.rb
class Wedding < ApplicationRecord
belongs_to :creator, class_name: 'user', foreign_key: 'creator_id'
belongs_to :second_creator, class_name: 'user', foreign_key: 'second_creator_id', optional: true
belongs_to :third_creator, class_name: 'user', foreign_key: 'third_creator_id', optional: true
belongs_to :bride, class_name: 'user', foreign_key: 'bride_id'
belongs_to :groom, class_name: 'user', foreign_key: 'groom_id'
belongs_to :photo_type, class_name: 'tier', foreign_key: 'photo_type', optional: true
belongs_to :video_type, class_name: 'tier', foreign_key: 'video_type', optional: true
enum wedding_status: { reservation: 0, signed: 1, post: 2, delivered: 3, done: 4 }
end
User.rb
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
before_save :set_full_name
has_many :weddings, class_name: 'wedding', foreign_key: 'creator_id'
has_many :weddings, class_name: 'wedding', foreign_key: 'second_creator_id'
has_many :weddings, class_name: 'wedding', foreign_key: 'third_creator_id'
has_many :weddings, class_name: 'wedding', foreign_key: 'bride_id'
has_many :weddings, class_name: 'wedding', foreign_key: 'groom_id'
validates :role, :email, :first_name, :last_name, presence: true
enum role: { super_admin: 0, admin: 1, bride: 2, groom: 3 }
protected
def set_full_name
self.full_name = "#{first_name} #{last_name}"
end
end
wedding_controller.rb
def create
@wedding = Wedding.new(wedding_params)
if @wedding.save
redirect_to weddings_path, notice: t('views.weddings.create.notice')
else
render :new
end
end
private
def wedding_params
ret = params.require(:wedding).permit(:creator_id, :bride_id, :groom_id, :photo_type_id,
:video_type_id, :wedding_date, :wedding_location, :reception_location, :bride_house,
:groom_house, :is_session_photo, :is_session_video, :session_location, :session_date,
:price, :is_paid, :advance, :is_advance_paid, :is_photo, :is_video, :video_link,
:photo_link, :thumb_image, :second_creator_id, :third_creator_id, :wedding_status)
ret
end
Im using simple_form to render my form.
The class name should be capitalized.
belongs_to :creator, class_name: 'User', foreign_key: 'creator_id'
You need to change all other lines (the same issue)