У меня проблема с моей формой в Rails 3. Формы работают, если я что-то создаю, но если я пытаюсь что-то обновить, они терпят неудачу.В этом примере я попытался обновить настройки пользователя, такие как имя, почта и т. Д. Вот соответствующие фрагменты кода:
Редактирование и обновление из User_Controller.rb
def edit
@title = "Nutzerverwaltung"
end
def update
@user = User.find(params[:id])
if @user.update_attributes(params[:user])
flash[:success] = "Profil aktualisiert"
redirect_to @user
else
@title = "Edit"
render 'edit'
end
end
Затем естьформа:
%form.user_edit
= form_for @user, :url => {:controller => "users", :action => "update"}, :html => { :method => :put } do |f|
= render 'shared/error_messages', :object => f.object
= render 'fields', :f => f
.actions
= f.submit "Update"
Вывод моего терминала при запуске локального сервера WEBrick (некоторые метки формы имеют немецкие имена):
Started GET "/users/2/edit?utf8=%E2%9C%93&_method=put&authenticity_token=R5LfeIAjpJOpH%2B0yMD8PLO24%2Fgcct0CCqXuzoLoVibs%3D&user%5Banrede%5D=&user%5Bname%5D=Johnny&user%5Bemail%5D=t.schneider%40mail.com&user%5Bpassword%5D=&user%5Bpassword_confirmation%5D=&user%5Bplz%5D=&user%5Bort%5D=&user%5Bstrasse%5D=&commit=Update" for 127.0.0.1 at 2011-09-13 15:53:24 +0200
Processing by UsersController#edit as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"R5LfeIAjpJOpH+0yMD8PLO24/gcct0CCqXuzoLoVibs=", "user"=>{"anrede"=>"", "name"=>"TESTer", "email"=>"t.schneider@mail.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "plz"=>"", "ort"=>"", "strasse"=>""}, "commit"=>"Update", "id"=>"2"}
User Load (1.2ms) SELECT "users".* FROM "users" WHERE ("users"."id" = 2) LIMIT 1
CACHE (0.0ms) SELECT "users".* FROM "users" WHERE ("users"."id" = 2) LIMIT 1
Rendered shared/_error_messages.html.haml (2.2ms)
Rendered users/_fields.html.haml (7.5ms)
Rendered layouts/_stylesheets.html.haml (2.4ms)
Rendered layouts/_header.html.haml (3.9ms)
Rendered layouts/_footer.html.haml (2.0ms)
Rendered users/edit.html.haml within layouts/application (33.2ms)
Completed 200 OK in 118ms (Views: 36.7ms | ActiveRecord: 1.2ms)
А затем есть мои рейк-маршруты, которыемне кажется, что это нормально:
users GET /users(.:format) {:action=>"index", :controller=>"users"}
users POST /users(.:format) {:action=>"create", :controller=>"users"}
new_user GET /users/new(.:format) {:action=>"new", :controller=>"users"}
edit_user GET /users/:id/edit(.:format) {:action=>"edit", :controller=>"users"}
user GET /users/:id(.:format) {:action=>"show", :controller=>"users"}
user PUT /users/:id(.:format) {:action=>"update", :controller=>"users"}
user DELETE /users/:id(.:format) {:action=>"destroy", :controller=>"users"}
sessions POST /sessions(.:format) {:action=>"create", :controller=>"sessions"}
new_session GET /sessions/new(.:format) {:action=>"new", :controller=>"sessions"}
session DELETE /sessions/:id(.:format) {:action=>"destroy", :controller=>"sessions"}
posts POST /posts(.:format) {:action=>"create", :controller=>"posts"}
edit_post GET /posts/:id/edit(.:format) {:action=>"edit", :controller=>"posts"}
post DELETE /posts/:id(.:format) {:action=>"destroy", :controller=>"posts"}
root /(.:format) {:controller=>"pages", :action=>"start"}
/(.:format) {:controller=>"pages", :action=>"start"}
start /start(.:format) {:controller=>"pages", :action=>"start"}
kontakt /kontakt(.:format) {:controller=>"pages", :action=>"kontakt"}
tagebuch /tagebuch(.:format) {:controller=>"pages", :action=>"tagebuch"}
hinzufuegen /hinzufuegen(.:format) {:controller=>"pages", :action=>"hinzufuegen"}
bluefocus /bluefocus(.:format) {:controller=>"pages", :action=>"bluefocus"}
seminare /seminare(.:format) {:controller=>"pages", :action=>"seminare"}
angebote /angebote(.:format) {:controller=>"pages", :action=>"angebote"}
specials /specials(.:format) {:controller=>"pages", :action=>"specials"}
shop /shop(.:format) {:controller=>"pages", :action=>"shop"}
registrieren /registrieren(.:format) {:controller=>"users", :action=>"registrieren"}
login /login(.:format) {:controller=>"sessions", :action=>"login"}
logout /logout(.:format) {:controller=>"sessions", :action=>"destroy"}
/posts/:id/edit(.:format) {:controller=>"posts", :action=>"edit"}
Я знаю, что эта функция редактирования работала однажды, но я не знаю, что изменилось, так что она больше не работает.
ЕслиВам нужна дополнительная информация, просто скажите слово.
Любая помощь приветствуется.Спасибо!