/ /レールの対応するhas_one行を見つける - ruby​​-on-rails、has-one

レールに対応するhas_one行を見つける - 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

新しい関係の移行を作成するのを忘れた。

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 そしてさらに試みる。