【发布时间】:2011-10-24 22:39:14
【问题描述】:
我在让两个用户属于同一模型(票证)时遇到了一点问题。
在我正在构建的错误跟踪器中,工单是需要对项目执行的单个任务项。它有两个用户,Ticket.raised_by 和 Ticket.assigned_to。创建用户
问题是我一直在Tickets#create 操作上引发ActiveRecord::AssociationTypeMismatch 异常,错误消息看起来有点像
User(#81485590) expected, got String(#68375030)
这是Ticket.rb的代码:
# Table name: tickets
#
# id :integer not null, primary key
# title :string(255)
# description :text
# status :string(255) default("open")
# priority :boolean default(FALSE)
# project_id :integer
# raised_by_id :integer default(0)
# assigned_to_id :integer default(0)
# created_at :datetime
# updated_at :datetime
class Ticket < ActiveRecord::Base
validates :title, :presence => true
validates :status, :presence => true
belongs_to :project
belongs_to :raised_by, :foreign_key => 'raised_by_id', :class_name => 'User'
belongs_to :assigned_to, :foreign_key => 'assigned_to_id', :class_name => 'User'
before_create do
self.raised_by = current_user
end
state_machine :status, :initial => 'open' do
# when a ticket is "claimed" by a developer
event :work do
transition any => :working_on
end
# posted the solved ticket to the dev server (or VM)
event :post do
transition any => :posted
end
# ticket is under review by another developer
event :review do
transition any => :reviewed
end
# review is completed and confirmed. only reviewed or flagged tasks can be completed.
event :complete do
transition [:review, :flagged] => :completed
end
# occurs when the project is completed
event :close do
transition any => :closed
end
# Special treatment for administrators. Sends them a Message detailing the flagged issue.
event :flagged do
transition any => :flagged
end
end
end
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 activerecord model-associations