Verwenden Sie benutzerdefinierte Routen? Oder machst du einfach resources :users
? Besser laufen rake routes
. /users/new
ist normalerweise ein GET, was sinnvoll ist, da Sie ein Objekt holen. Die Aktion create
ist der einzige POST, der auf /users
abgebildet wird. Doing /users/new
als POST bricht REST.
POST-Daten sind bei einer GET-Methode nicht zulässig. Alle Parameter werden in die Abfragezeichenfolge in der URL eingefügt. Diese Parameter werden weiterhin im Hash params
angezeigt.
bearbeiten
Wenn Sie tatsächlich sind versucht, einen Benutzer mit diesem REST Aufruf zu erstellen, müssen Sie http://localhost:3000/users POST, nichthttp://localhost:3000/users/new
bearbeiten
Leider I Ich weiß nicht genug darüber, wie Flash POST-Anfragen sendet, um Ihnen zu sagen, warum Ihre Parameter nicht auftreten. Wenn Sie jedoch versuchen, zu dem Formular zu gelangen, benötigen Sie definitiv ein GET zu http://localhost:3000/users/new. Du sagst, dass du die Variable gut aufnehmen kannst, wenn du ein GET machst, oder? Sie müssen also keinen POST machen.
Wenn Sie nicht möchten, dass der Benutzer die Bewertung bearbeiten kann, speichern Sie den Wert in einer Variablen im Controller, und wenn Sie die Ansicht rendern, geben Sie diesen Wert in ein nicht bearbeitbares Element ein. wie eine deaktivierte Textbox oder vielleicht nur ein Etikett.
bearbeiten
Wenn Sie herausfinden können, wie Sie Ihre Post-Daten zu Rails gegenüber Flash-bekommen, müssen Sie eine POST users_url
tun, und dann können Sie Ihre create
Methode ändern zurück zu schicken die ID des Benutzers, der erstellt wurde. Dann, wenn Sie das zurückbekommen, können Sie einen weiteren Anruf tätigen, um den Benutzer mit dieser ID zu bearbeiten, wobei das Score-Feld deaktiviert bleibt. Viel Glück.
Wird der Parameter ': score' im Controller empfangen? Überprüfen Sie den Controller, indem Sie in der Ansicht 'debug params' für die Aktion 'users/new' setzen. – Zabba