ジョブ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新しい関係の移行を作成するのを忘れた。
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
そしてさらに試みる。