Ruby on rails 为什么Rails 4在我使用respond_块内部重定向_时呈现我的视图

Ruby on rails 为什么Rails 4在我使用respond_块内部重定向_时呈现我的视图,ruby-on-rails,actioncontroller,Ruby On Rails,Actioncontroller,因此,在respond_中,如果stockUpdated和stock!={}按预期失败,else块运行(我已经用byebug测试过了)。因此,服务器应该重定向,但它会呈现。另一件奇怪的事情是,由于它呈现了flash.now[:alert]-“…”应该可以工作,但它也不会显示在视图中(用我的话说) 控制器: respond_to do |format| if stockUpdated and stock != {} format.js

因此,在respond_中,如果stockUpdated和stock!={}按预期失败,
else
块运行(我已经用byebug测试过了)。因此,服务器应该重定向,但它会呈现。另一件奇怪的事情是,由于它呈现了
flash.now[:alert]-“…”
应该可以工作,但它也不会显示在视图中(用我的话说)

控制器:

respond_to do |format|
        if stockUpdated and stock != {}
            format.js
            format.html { 
                redirect_to user_path(@user), 
                notice: "#{stock.symbol} has been added to your portfolio!"
            }
        else
            flash.now[:alert] = "We could not add that stock to your portfolio."
            format.html{redirect_to user_path(@user)}
        end
    end
服务器:

Started GET "/users/1" for ::1 at 2017-01-13 11:48:21 -0500
Processing by UsersController#show as HTML
Parameters: {"id"=>"1"}
User Load (1.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 1]]
User Load (0.5ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 1]]
Stock Load (0.5ms)  SELECT "stocks".* FROM "stocks" INNER JOIN "assets" ON "stocks"."id" = "assets"."stock_id" WHERE "assets"."user_id" = $1  [["user_id", 1]]
Rendered stocks/_stock.html.erb (0.5ms)
Rendered users/show.html.erb within layouts/application (13.7ms)
Completed 200 OK in 92ms (Views: 81.6ms | ActiveRecord: 2.0ms)

您应该在重定向后添加
并返回

respond_to do |format|
  if stockUpdated and stock != {}
    format.js
    format.html { 
      redirect_to user_path(@user), notice: "#{stock.symbol} has been added to your portfolio!"
    }
  else
    format.html{
      redirect_to user_path(@user), flash: {alert: "We could not add that stock to your portfolio."} and return
    }
  end
end

只是想澄清一下:
user\u路径(@user)
/users/1
?如果是,则服务器日志显示该路由(重定向的路由)。