غريب روبي على خطأ القضبان (Assistaintypemishatch)

StackOverflow https://stackoverflow.com/questions/2344896

  •  23-09-2019
  •  | 
  •  

سؤال

مشكلة حقيقية مع webapp الحالي الذي يعمل على مدار العامين الماضيين ...

ActiveRecord::AssociationTypeMismatch (Note(#23706868500220) expected, got String(#23706844996600)):
  app/controllers/jobs_controller.rb:56:in `new'
  app/controllers/jobs_controller.rb:56:in `create'

السطر 56 من Jobs_Controller.rb:

@jobs = Jobs.new(params[:jobs])

المعلمات من وحدة التحكم:

Parameters: {
  "label" => { "userid" => "332" },
  "jobs"  => {
    "sub"     => "7",
    "notes"   => "Test Note Information",
    "master"  => "1",
    "user_id" => "332",
    "file"    => "Screen shot 2010-02-19 at 13.33.19.png",
    "ref"     => "12345",
    "jobtitle"=> "Test Job",
    "status"  => "0"
  },
  "x"     => "111",
  "y"     => "6",
  "id"    => "newjob"
}

أي شخص قادر على تقديم المشورة؟

هتافات،

كارل

هل كانت مفيدة؟

المحلول

يبدو أن لديك إعلانًا في نموذج وظيفتك يسبب الحزن:

class Job < ActiveRecord::Base
  has_many :notes
end

عندما تحاول التعيين إلى جمعية كهذه ، ستحصل على صراع. تحتاج إلى تحويل الملاحظة النصية إلى سجل مناسب قبل تعيينها.

قد تكون قادرًا على فعل شيء كهذا:

params[:jobs][:notes] = [ Note.new(:note => params[:jobs][:notes]) ]

تعتمد أسماء المعلمات الفعلية على نموذج الملاحظة.

يمكنك أيضا التحقيق arching_nted_attributes_for ولكن يمكن أن يكون هذا سؤالا منفصلا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top