1

这是在登录操作中。我正在尝试对其进行调整以发回 return_url 查询参数,但我在简单的渲染中失败了。

事先的:

  respond_to do |format|
    format.html {
      flash.now[:error] = error
      render
    }

尝试1:

  respond_to do |format|
    format.html {
      flash.now[:error] = error
      render return_url => "blah" 
    }

尝试2:

  respond_to do |format|
    format.html {
      flash.now[:error] = error
      render "login", local =>  {return_url => "blah"}
    }
4

3 回答 3

1

我在出现错误后通过了params[:redirect_after_error]并解决了它。

  respond_to do |format|
            format.html {
                flash.now[:error] = error
                 params[:redirect_after_error]  = params[:return_url]
              render
            }
于 2013-10-15T03:05:52.830 回答
0

据我了解。您正在尝试将 return_url 传递给视图。正确的?因此,如果您愿意,您可以创建一个包含返回 url 值的实例变量 For ex

@return_url = root_path() #or change it to url you want
#Then follow with the code you written
#You will see that you can use @return_url in the view without doing anything else.

如果它没有回答你的问题。能不能准确点。我不太确定我是否正确理解了您的问题。

于 2013-10-15T02:43:47.017 回答
0

因为这个视图在渲染时应该有一个实例变量,所以如果它失败,你只需渲染到 root_path

前任:

@user = xxxx respond_to 做 |格式|
if @user.save format.html { redirect_to @users,注意:'用户已成功创建。' }
else
format.html { 渲染 root_path, :alert: error }
end
end

于 2013-10-15T12:26:28.800 回答