Ruby on rails 无法将\u重定向到ruby on rails中的当前\u用户

Ruby on rails 无法将\u重定向到ruby on rails中的当前\u用户,ruby-on-rails,ruby,Ruby On Rails,Ruby,我是RubyonRails的新手,我试图更新我的用户,但当我的用户更新时,我无法将\u重定向到我当前的\u用户。这是我的控制器: class WelcomeController < ApplicationController def index @users = (current_user.blank? ? User.all : User.find(:all, :conditions => ["id != ?", current_user.id])) end d

我是RubyonRails的新手,我试图更新我的用户,但当我的用户更新时,我无法将\u重定向到我当前的\u用户。这是我的控制器:

class WelcomeController < ApplicationController
  def index
    @users = (current_user.blank? ? User.all : User.find(:all, :conditions => ["id != ?", current_user.id]))
  end

  def create
    user = User.login(params[:session][:username], params[:session][:pass])
    if user
      login user
      redirect_to root_url
    else
      redirect_to welcome_index_path
    end
  end

  def sucess
    @user = User.find(params[:id])
    @relation = Relation.new
  end

  def edit
    if current_user.update_attributes(:image => params[:image])
      logger.debug "image: #{current_user.image}"
      if current_user.changed?
        redirect_to current_user
      else
        render 'edit'
      end
    else
    end
  end

  def destroy
    logout
    redirect_to root_url
  end
end
当我检查日志文件时:

  Started POST "/welcome/edit?method=post" for 127.0.0.1 at 2014-11-13 15:09:00 +0700
Processing by WelcomeController#edit as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"XHQeEBjnndipJ8c4TrOnn5Yzh7xqvcEhl4+L7BbGBY0=", "image"=>"Hydrangeas.jpg", "commit"=>"Save", "method"=>"post"}
  [1m[35mUser Load (1.0ms)[0m  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", 10]]
  [1m[36m (0.0ms)[0m  [1mbegin transaction[0m
  [1m[35mUser Exists (0.0ms)[0m  SELECT 1 AS one FROM "users" WHERE ("users"."username" = 'sa1234' AND "users"."id" != 10) LIMIT 1
  [1m[36m (1.0ms)[0m  [1mUPDATE "users" SET "image" = 'Hydrangeas.jpg', "updated_at" = '2014-11-13 08:09:00.576402' WHERE "users"."id" = 10[0m
  [1m[35m (157.0ms)[0m  commit transaction
  [1m[36mUser Load (0.0ms)[0m  [1mSELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1[0m  [["id", 10]]
image: Hydrangeas.jpg
  [1m[35mCACHE (0.0ms)[0m  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", 10]]
  [1m[36mCACHE (0.0ms)[0m  [1mSELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1[0m  [["id", 10]]
  Rendered welcome/edit.html.erb within layouts/application (4.0ms)
  [1m[35mCACHE (0.0ms)[0m  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", 10]]
  [1m[36mCACHE (0.0ms)[0m  [1mSELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1[0m  [["id", 10]]
  [1m[35mCACHE (0.0ms)[0m  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", 10]]
  [1m[36mCACHE (0.0ms)[0m  [1mSELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1[0m  [["id", 10]]
  [1m[35mCACHE (0.0ms)[0m  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", 10]]
Completed 200 OK in 219.0ms (Views: 52.0ms | ActiveRecord: 159.0ms)
我不知道如果我的当前用户更新未成功,我的应用程序如何渲染编辑,请!帮我解决这个问题:

更新: @Jakob S,这是我尝试你的代码时的日志:

Started GET "/welcome/edit" for 127.0.0.1 at 2014-11-13 15:21:57 +0700
Processing by WelcomeController#edit as HTML
  [1m[36mUser Load (1.0ms)[0m  [1mSELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1[0m  [["id", 10]]
  [1m[35m (0.0ms)[0m  begin transaction
  [1m[36mUser Exists (1.0ms)[0m  [1mSELECT 1 AS one FROM "users" WHERE ("users"."username" = 'sa1234' AND "users"."id" != 10) LIMIT 1[0m
  [1m[35m (0.0ms)[0m  commit transaction
  [1m[36mCACHE (0.0ms)[0m  [1mSELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1[0m  [["id", 10]]
image: 
  [1m[35mCACHE (0.0ms)[0m  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", 10]]
Redirected to http://localhost:3000/users/10
Completed 302 Found in 5.0ms (ActiveRecord: 2.0ms)


Started GET "/users/10" for 127.0.0.1 at 2014-11-13 15:21:57 +0700
Processing by WelcomeController#sucess as HTML
  Parameters: {"id"=>"10"}
  [1m[36mUser Load (0.0ms)[0m  [1mSELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1[0m  [["id", "10"]]
  [1m[35mUser Load (0.0ms)[0m  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", 10]]
  [1m[36mCACHE (0.0ms)[0m  [1mSELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1[0m  [["id", 10]]
  [1m[35mUser Load (0.0ms)[0m  SELECT "users".* FROM "users" INNER JOIN "relations" ON "users"."id" = "relations"."following_id" WHERE "relations"."follower_id" = 10
  [1m[36mUser Load (0.0ms)[0m  [1mSELECT "users".* FROM "users" INNER JOIN "relations" ON "users"."id" = "relations"."follower_id" WHERE "relations"."following_id" = 10[0m
  Rendered welcome/sucess.html.erb within layouts/application (7.0ms)
  [1m[35mCACHE (0.0ms)[0m  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", 10]]
  [1m[36mCACHE (0.0ms)[0m  [1mSELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1[0m  [["id", 10]]
  [1m[35mCACHE (0.0ms)[0m  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", 10]]
  [1m[36mCACHE (0.0ms)[0m  [1mSELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1[0m  [["id", 10]]
  [1m[35mCACHE (0.0ms)[0m  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", 10]]
Completed 200 OK in 39.0ms (Views: 37.0ms | ActiveRecord: 0.0ms)
当前用户已更改?是你的问题的根源

变了?是Rails的一部分。模型脏状态,即在保存模型时重置已更改的属性

更新属性。因此,当前用户发生了变化?在更新_属性之后,将始终为false,因为自上次保存后模型未更改

是否删除已更改的支票?及其相关的渲染编辑部分,您应该可以开始了:

def edit
  if current_user.update_attributes(:image => params[:image])
    redirect_to current_user
  else
    render 'edit'
  end
end

额外提示:一般来说,像您正在实施的更新资源的操作通常会包含在更新操作中。编辑操作通常用于呈现用于更改资源的UI。

请。发布你的控制器和路线的完整代码。rb。我编辑了我的问题,请查看。请发布相关操作的完整日志。必须有相关的输出上面的图像:Desert.jpg行。我张贴了我的日志文件,请看它甚至不能去我的编辑页面。我用你的代码发布了我的日志,请看!粗略地看一下日志,您确实可以转到编辑页面,它实际上重定向到当前用户。据我所知,一切正常。如果您还有其他问题,请随时发布另一个问题,并提供重现此新问题所需的详细信息。我很乐意尝试回答这个问题,但是在这个问题上回答会变得太麻烦。
def edit
  if current_user.update_attributes(:image => params[:image])
    redirect_to current_user
  else
    render 'edit'
  end
end