0

Bir kullanıcı ve denetleyici (kullanıcı) sahip olduğumdan, diğer kullanıcı profillerini nasıl yönetici olarak yönetebilir ve düzenleyebilirim? Bir yönetici ve kullanıcı tarafından denetlendiğim için kullanıcıları yönetici olarak nasıl yönetebilirim?

Burada sorun denilen updateusers
def updateusers 
    @other_user=User.find(params[:id]) 
    if @other_user.update_attributes(otherusers_params) 
      redirect_to '/' 
    else 
      redirect_to '/manage' 
    end 
end 

yeni bir işlem eklemek çalıştı: o other_user en verilere sahip yönetici kullanıcı güncelliyor

yığın izleme

Started GET "/manage" for ::1 at 2016-03-19 21:06:08 +0300 Processing by 
    UsersController#manage as HTML User Load (1.0ms) SELECT "users".* FROM 
"users" Rendered users/manage.html.erb within layouts/application (5.0ms) User 
Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 
[["id", 1]] Completed 200 OK in 53ms (Views: 51.0ms | ActiveRecord: 1.0ms) 


    'Started GET "https://stackoverflow.com/users/10" for ::1 at 2016-03-19 21:06:10 +0300 Processing by 
UsersController#show as HTML Parameters: {"id"=>"10"} User Load (0.0ms) SELECT 
"users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 10]] Rendered 
users/show.html.erb within layouts/application (0.0ms) User Load (0.0ms) SELECT 
"users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 1]] Completed 200 
OK in 37ms (Views: 36.0ms | ActiveRecord: 0.0ms) 


    Started GET "/editusers/10" for ::1 at 2016-03-19 21:06:11 +0300 Processing 
by UsersController#editusers as HTML Parameters: {"id"=>"10"} User Load (0.0ms) 
SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 10]] 
Rendered users/editusers.html.erb within layouts/application (4.0ms) User Load 
(1.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 1]] 
Completed 200 OK in 41ms (Views: 39.0ms | ActiveRecord: 1.0ms) 


    Started PATCH "https://stackoverflow.com/users/10" for ::1 at 2016-03-19 21:06:15 +0300 Processing by 
UsersController#update as HTML Parameters: {"utf8"=>"✓", 
"authenticity_token"=>"6M1TGLQUEhiezCCg9/rT5IofdroMiQ0sm+bYcihgGDxTjDdFGU2Riou2p‌​ 
cRk5ncjCtFDGwfBj17Uq7gc0u329w==", "user"=>{"first_name"=>"g", "last_name"=>"g", 
"email"=>"[email protected]", "role"=>"editor", "image"=>"pic.png", "admins"=>""}, 
"other"=>"update", "id"=>"10"} User Load (0.0ms) SELECT "users".* FROM "users" 
WHERE "users"."id" = ? LIMIT 1 [["id", 1]] Unpermitted parameters: role, admins 


    (0.0ms) begin transaction SQL (1.0ms) UPDATE "users" SET "first_name" = ?, 
"last_name" = ?, "email" = ?, "updated_at" = ? WHERE "users"."id" = ? 
[["first_name", "g"], ["last_name", "g"], ["email", "[email protected]"], ["updated_at", 
"2016-03-19 18:06:15.488284"], ["id", 1]] (47.0ms) commit transaction Redirected 
to localhost:8080/profile Completed 302 Found in 54ms (ActiveRecord: 48.0ms) 

cevap

0

10 gün sonra, Evet yaptım - çözüm gönderenin adıyla, farklı adlarla iki sunumu adlandırdım <% = f.submit "update", name: "other"%> sonra i Bu güncelleme eylemini şu şekilde kullanmıştık:

0

"Düzenleyiciler" içindeki formun kullanıcı kimliği, yöneticinize (veya giriş yapan kullanıcının) ayarlanır. Kodu görmeden söylemek zor ama düzenleme formunu yanlış oluşturuyorsunuz. Güncellemek istediğiniz kullanıcının kimliğini saklamak için gizli bir alan kullanıyor olabilirsiniz.

önlemek ve görünümünüz kimliği için herhangi bir gizli alanları olmayan bir form_for @user do |f| kullanmak içinde @user = User.find(10) Ardından 'editusers' eylem @user nesnesi kurmak için deneyin.

+0

Çok teşekkür ederim –

+0

Umarız yardımcı olur! – meshpi