2016-08-21 1 views
0

Kann ich Daten in einem ausgeblendeten Formularfeld, das in einer Datenbank oder einem Parameter in einem Modell kein reales Feld enthält, mithilfe von Reform in das Formularobjekt einfügen?Zugreifen auf nicht verknüpfte Formularobjektparameter

Ich kann die Daten an den Controller fein übergeben, wenn nicht Reform (Formularobjekt). Aber wenn ich versuche, Reform zu benutzen, kann ich einfach nicht darauf zugreifen.

Zum Beispiel wäre :name eine sehr einfache Sache mit Reform;

<%= f.input :name, placeholder: 'Name' %> 

Aber ich muss eine Liste von IDs übergeben, die ich eine Validierung ausführen kann;

<%= hidden_field_tag :current_case_worker_ids, @case_workers.pluck(:id) %> 

Es gibt keine :current_case_worker_ids wirklich. Das gibt es nicht in meiner Datenbank (anders als :name).

Vor der Reform verwendete ich example[current_case_worker_ids], um auf die Daten zuzugreifen.

Formularobjekt;

class CaseWorkersForm < ApplicationForm 
    property :case_worker_ids 
    property :current_case_worker_ids, virtual: true 

    def case_worker_ids=(case_worker_ids) 
    binding.pry 

So würde Ich mag Lage sein :current_case_worker_ids zuzugreifen am binding.pry

+0

Können Sie Ihr Formularobjekt posten? –

+0

Ja, es postet gut .. Oder meinen Sie meinen Code? Ich werde jetzt aktualisieren – mikelovelyuk

+0

Also in Ihrem Posted Code gibt es offensichtliche Tippfehler, Sie haben 'case_worker_ids =' Methode und Eigenschaft heißt 'current_case_worker_ids' –

Antwort

0

Es wird höchstwahrscheinlich nach alphabetischer Reihenfolge der Eigenschaften verursacht. case_worker_ids ist vor current_case_worker_ids gesetzt, wenn Sie versuchen, in case_worker_ids= Methode zuzugreifen, ist es noch nicht festgelegt. Sie sollten nach anderen Lösungen suchen.

+0

Ich habe versucht, a_ vor current_case_worker_ids zu setzen. Scheint keinen Unterschied gemacht zu haben. Ist es vielleicht eine Massenaufgabe? (obwohl current_case_worker_ids) sich nicht auf ein Feld in einer Datenbank bezieht! – mikelovelyuk

+0

Versuchen Sie, puts-Anweisungen sowohl zu current_case_worker_ids = 'als auch' case_worker_ids = 'hinzuzufügen. Sie werden sehen, in welcher Reihenfolge diese Methoden aufgerufen werden. –

+0

Hmm .. a_current_case_workers_ids = erschien nicht einmal im Terminal mit einer Puts-Anweisung – mikelovelyuk

Verwandte Themen