Frage

Oh, so bitte Geduld mit mir ... Ich habe ein Modell für Buchungen und ein Modell für die Fahrer. Ein Fahrer hat viele Buchungen und eine Buchung gehört zu einem Fahrer.

Beim Hinzufügen oder eine Buchung bearbeiten, möchte ich den Benutzer in der Lage sein den Benutzernamen des Treibers eingeben. Benutzernamen sind eindeutig und leichter für den Endanwender als jeder Fahrer eine Nummer zu geben.

Nun, das ist, wie ich es getan haben:

def create
  if params[:booking][:driver].empty? 
    params[:booking][:driver] = nil 
  else
    @driver = Driver.find(:first, :conditions => { :username => params[:booking][:driver] })
    params[:booking][:driver] = @driver
  end

Dieser Code funktioniert gut für die Vorlage, aber wenn das Formular geladen wird, zeigt es die Referenz des Objekts (z. B. #) und ich brauche es den Benutzernamen zu zeigen. Wie kann ich <% = f.text_field: driver%> ändern? Im form_for in der Bearbeitungsansicht den Wert der Treiber Benutzername nehmen

Bin ich über diese gehen den richtigen Weg, oder gibt es eine tote einfache, Schienen Weg zu tun, was ich brauche?

War es hilfreich?

Lösung

„aber wenn das Formular geladen wird“ meinst du, wenn es fehlschlägt oder erstellen, wenn Sie bearbeiten? Können Sie nach Ihrer vollständigen Update veröffentlichen und erstellen Aktionen bitte.

params [: Buchung] [: driver] = @ driver.username sollten Ihre Parameter mit einem String anstelle eines Objekts füllen, obwohl ich nicht sicher bin, das ist wirklich das, was Sie tun möchten. Statt es zu null, wenn seine leeren Einstellung, nur um es leer zu lassen, gleich Null ist ein Objekt, das vielleicht, warum Sie die ‚#‘ sehen

Was Sie hier machen scheint nicht richtig, ist es wahrscheinlich sinnvoller ist, mit dem Auswahlfeld Treiber nur Stick sowieso, wo das Feld der driver_id ist. Wenn Sie wirklich ein Textfeld verwenden möchten, dann werde ich Ihnen helfen? Nur nach Ihrem Code zuerst.

Sie das gesehen? Es sollte Ihnen helfen, führen ein wenig mehr:

http://railscasts.com/episodes/57-create -Modell-through-text-Feld

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