У меня есть две модели, которые имеют связь has_many с одним и тем же объектом.У меня есть Пользователь, Администратор и Посещения.
Пользователи has_many Посещения Администраторы has_many Посещения
Каждый раз, когда я создаю Посещение с Пользователем, это работает, но когда я делаю это с Администратором этовыдает ошибку:
ActiveRecord::AssociationTypeMismatch
.
Полная ошибка такова:
User(#70282715553200) expected, got #<Admin id: 2, email: "admin@gmail.com", created_at: "2019-02-07 12:08:40", updated_at: "2019-02-07 12:08:40"> which is an instance of Admin(#70282709528720)
def create
@visit = @service.visits.new(visit_params)
if user_signed_in?
@visit.user = current_user
else
@visit.user = current_admin
end
if @visit.save
redirect_to service_visits_path(@service)
else
redirect_to @services
end
end
==============================
class Admin < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and
# :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
has_many :visits, dependent: :destroy
end
==============================
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and
# :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
has_many :visits, dependent: :destroy
end
==============================
class Visit < ApplicationRecord
belongs_to :user
belongs_to :admin
belongs_to :service
end