0

好的,我所拥有的是一个记录“人”历史记录的表,它记录了人(用户)、处理程序(用户)、之前的状态(JobApplicationStatus)、之后的状态(JobApplicationStatus)。

现在在我的脑海中,这可以转化为这样的表格:

**工作申请历史**
标识(整数)
status_before_id (int)
status_after_id (int)
user_id (int)
handler_id (int)

我试图进行迁移,这有点工作,但它不能正常工作。

因为我想使用类似的东西:

用户 = User.find(1)
处理程序 = User.find(1)
status_before = JobApplicationStatus.find(1)
status_after = JobApplicationStatus.find(2)

历史 = JobApplicationHistory.new()
历史用户=用户
history.handler = 处理程序
history.status_before = status_before
history.status_after = status_after
历史.保存

这是我的迁移

class CreateUserApplicationHistories < ActiveRecord::Migration
  def self.up
    create_table :user_application_histories do |t|
      t.integer :user_id # goes to User
      t.references :job # goes to Job
      t.integer :handler_id # goes to User
      t.integer :status_from_id # goes to JobApplicationStatus
      t.integer :status_to_id # goes to JobApplicationStatus
      t.timestamps
    end

add_index("user_application_histories", "job_id")
add_index("user_application_histories", "handler_id")
add_index("user_application_histories", "user_id")
add_index("user_application_histories", "status_from_id")
add_index("user_application_histories", "status_to_id")

end

def self.down drop_table :user_application_histories end end

还有我的模型,我认为它会失败

class UserApplicationHistory < ActiveRecord::Base
  belongs_to :status_from_id, :class_name => "JobApplicationStatus"
    belongs_to :status_to_id, :class_name => "JobApplicationStatus"
  belongs_to :user_id, :class_name => "User"
  belongs_to :handler_id, :class_name => "User"
end

4

1 回答 1

1

没错,对于用户和处理程序,您的模型应该如下所示:

belongs_to :user
belongs_to :handler, :class_name => "User"

为了帮助您解决 JobApplicationStatus 我需要知道这张表的样子

于 2011-03-04T21:15:43.640 回答