在 rails 中查找相应的 has_one 行
Finding corresponding has_one row in rails
如果工作 has_one 与之关联的简历:
class Job < ActiveRecord::Base
has_one :cv
end
我设置的路线如下:
resources :jobs do
resource :cv
end
当我想为一份工作创建简历时,我遵循以下 link:
<%= 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
我想我在某处设置了错误,我只是不知道在哪里...
您忘记为新关系创建迁移,请通过
创建新迁移
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
再试一次。
如果工作 has_one 与之关联的简历:
class Job < ActiveRecord::Base
has_one :cv
end
我设置的路线如下:
resources :jobs do
resource :cv
end
当我想为一份工作创建简历时,我遵循以下 link:
<%= 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
我想我在某处设置了错误,我只是不知道在哪里...
您忘记为新关系创建迁移,请通过
创建新迁移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
再试一次。