在rails中查找相应的has_one行

时间:2015-11-20 19:35:31

标签: ruby-on-rails has-one

如果作业has_one cv与之关联:

class Job < ActiveRecord::Base
    has_one :cv
end

我按如下方式设置路线:

  resources :jobs do
    resource :cv
  end

当我想为作业创建简历时,请遵循以下链接:

  <%= link_to "Add CV", new_job_cvs_path(j) %>

与CV控制器中的以下方法相关联:

  def new
    @job = Job.find(params[:job_id])
    @job_cv = @job.cv.new
  end

然而,这导致我得到以下错误,@ job_cv行:

SQLite3::SQLException: no such column: cvs.job_id: SELECT "cvs".* FROM "cvs" WHERE "cvs"."job_id" = ? LIMIT 1

我想我在某个地方设置了一些错误,我只是不知道在哪里......

1 个答案:

答案 0 :(得分:0)

您忘记为新关系创建迁移,通过

创建新迁移
rails g migration AddCvToJobs

然后在app/db/migrate/xxx_add_cv_to_jobs.rb中编辑新创建的迁移文件:

class AddCvToJobs < ActiveRecord::Migration
  def change
    add_column :cvs, :job_id, :integer, index: true
  end
end

然后运行rake db:migrate并重试。

相关问题