2016-04-29 12 views
0

Ich möchte eine Controller-Funktion mit Ajax, die gut funktioniert, Problem ist die Objekterzeugung.Schienen erstellen Objekt mit Parameter - ohne erfordern

Ich versuche es so aus:

@tag = Tag.new params[:tagname] 
@tag.save 

Aber so habe ich Fehler 500 zurück

Wenn ich dies tun

@tag = Tag.new params.permit[:tagname] 
@tag.save 

Das "Werk", aber die Spalte TAG-Name in der Datenbank ist Null ...

was ist das Problem?

Was kann ich tun, um das zu beheben?

Antwort

2

Wenn ich verstehe, was Sie hier richtig machen, ist Ihr Problem, dass Sie eine Zeichenfolge an Tag#new übergeben. Allerdings, wenn Sie die Tag-Klasse geändert haben, müssen Sie tatsächlich etwas tun:

Tag.new name => params[:tagname]

Das heißt, „neue“ keine Zeichenfolge nehmen (wieder, es sei denn, Sie haben es geändert) Es dauert ein Hash.

+0

Danke für den Hash-Hinweis ;) – Felix

0

Richtige Lösung ist

@tag = Tag.new 
@tag.tagname = params[:tagname] 

Thaks für den Hinweis mit Hash-Problem;)

1

Sie könnten dies in einer einzigen Anweisung tun mit create

Tag.create(tagname: params[:tagname])