Frage

echtes Problem mit einem bestehenden Webapp, die für die letzten paar Jahre arbeiten ...

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

Zeile 56 von jobs_controller.rb:

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

Parameter von Konsole:

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"
}

Wer in der Lage zu beraten?

Cheers,

Carl

War es hilfreich?

Lösung

Es scheint, wie Sie eine Erklärung in Ihrem Job-Modell haben, das Leid verursacht:

class Job < ActiveRecord::Base
  has_many :notes
end

Wenn Sie versuchen, und assign eine Vereinigung wie das, Sie Konflikt zu bekommen. Sie müssen die Text Notiz in eine richtige Aufzeichnung konvertieren, bevor sie zugewiesen werden.

Unter Umständen können Sie so etwas wie dies tun:

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

Die tatsächlichen Parameternamen werden auf Ihrem Hinweis Modell ab.

Sie können auch untersuchen, accepts_nested_attributes_for aber, dass eine separate Frage sein könnte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top