ActiveRecord::TicketController中的AssociationTypeMismatch#新建
我有两个模型和控制器,一个用于用户,一个用于票据 每个用户可以有多张票。每个管理员用户(由ActiveRecord::TicketController中的AssociationTypeMismatch#新建,activerecord,ruby-on-rails-4,Activerecord,Ruby On Rails 4,我有两个模型和控制器,一个用于用户,一个用于票据 每个用户可以有多张票。每个管理员用户(由Admin:true表示)可以分配许多票证给他们 以下是我的联想: class Ticket < ActiveRecord::Base belongs_to :sender, class_name: "User", foreign_key: "id", inverse_of: :sent_tickets belongs_to :admin, class_name: "User", foreig
Admin:true
表示)可以分配许多票证给他们
以下是我的联想:
class Ticket < ActiveRecord::Base
belongs_to :sender, class_name: "User", foreign_key: "id", inverse_of: :sent_tickets
belongs_to :admin, class_name: "User", foreign_key: "id", inverse_of: :assigned_tickets
.
.
.
end
class User < ActiveRecord::Base
.
.
.
has_many :sent_tickets, class_name: "Ticket", foreign_key: "sender", inverse_of: :sender, dependent: :nullify
has_many :assigned_tickets, class_name: "Ticket", foreign_key: "assigned", inverse_of: :admin, dependent: :nullify
.
.
.
end
classticket
但是,每当我尝试运行@ticket=user.sent\u tickets.build
(在运行Rails IRB中的user=user.first
之后,我在TicketsController中得到ActiveRecord::AssociationTypeMismatch\new:user(#number)预期,得到Fixnum(#number)
有人能帮我吗?修复了它。我将
发送者
和分配
重命名为发送者id
和分配id
。然后我重新编写了我的关联:
class Ticket < ActiveRecord::Base
belongs_to :assigned, class_name: "User"
belongs_to :sender, class_name: "User"
.
.
.
end
class User < ActiveRecord::Base
.
.
.
has_many :help_requests, foreign_key: "sender_id", class_name: "Ticket", dependent: :nullify
has_many :sent_requests, through: :help_requests , source: :sender
has_many :tickets, foreign_key: "assigned_id", dependent: :nullify
has_many :assigned_tickets, through: :tickets, source: :assigned
.
.
.
end
classticket