jobsというリソースの下に 'pack'というメソッドを作成しようとしています。ネストされたリソースメソッドで "param is missingまたは値が空です"
私のルートは次のようになります。
resources :jobs do
member do
get 'pack' => 'jobs#pack'
end
end
そして、私のコントローラメソッドの簡易版は、次のようになります。
def pack
@job.pack
end
パックを得るために、私が持っている:
before_action :set_job, only: %i[show edit update destroy pack]
# Use callbacks to share common setup or constraints between actions.
def set_job
@job = Job.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def job_params
params.require(:job).permit(:description, :status, :client_id, :pack_size, :user_id)
end
を私は/エンド/ポイント/ジョブ/ 1 /パックを打つと、コントローラのメソッドをトリガーすることができるよ、私はよ
Parameters: {"id"=>"1"}
:
param is missing or the value is empty: job
ショーやパックどちらの方法は、保存のparamsを受け取る:エラーを打ちます
なぜ#packメソッドだけが私に不足しているジョブエラーを投げているのか分かりません。なぜこれが起こっているのですか?それをどうやって止めることができますか?
コンソール出力は:
Started GET "/api/v1/jobs/1/pack?user_id=1" for 127.0.0.1 at 2017-11-20 19:57:24 +0800
Processing by JobsController#pack as HTML
Parameters: {"user_id"=>"1", "id"=>"1"}
Job Load (0.2ms) SELECT "jobs".* FROM "jobs" WHERE "jobs"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
Completed 400 Bad Request in 2ms (ActiveRecord: 0.2ms)
ActionController::ParameterMissing - param is missing or the value is empty: job:
app/controllers/jobs_controller.rb:87:in `job_params'
app/controllers/jobs_controller.rb:6:in `pack'
のparamsにあまりにも存在していることは、 'は、モデル内で作成したpack'方法を投稿することができます(?@それが何をするかpack.pack)ことを見ることができるように、私はホワイトリストに
:id
を追加しました –申し訳ありません、それはタイプミスでした。それは@ job.pack – JCDJulian
する必要がありますええ、完全なトレースを追加できますか? –