Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby-on-rails将"u重定向到won';保存后不重定向,只停留在页面上(但不保存)_Ruby On Rails_Ruby_Ruby On Rails 3_Rubygems_Ruby On Rails 3.1 - Fatal编程技术网

Ruby-on-rails将"u重定向到won';保存后不重定向,只停留在页面上(但不保存)

Ruby-on-rails将"u重定向到won';保存后不重定向,只停留在页面上(但不保存),ruby-on-rails,ruby,ruby-on-rails-3,rubygems,ruby-on-rails-3.1,Ruby On Rails,Ruby,Ruby On Rails 3,Rubygems,Ruby On Rails 3.1,这是我的密码: class UsersController < ApplicationController def new @user = User.new end def create @user = User.new(params[:user]) respond_to do |format| if @user.save format.html { redirect_to :success }

这是我的密码:

class UsersController < ApplicationController

  def new
    @user = User.new
  end

   def create
      @user = User.new(params[:user])     
      respond_to do |format|
      if @user.save
      format.html { redirect_to :success }  

      else

      format.html { render :new }  
      format.js   { render :form_errors }
      end
    end
  end

end
保存后,用户不会重定向到临时成功页面。我错过什么了吗? 我还尝试重定向到“成功”

编辑:

通过读取日志,您的表单将作为JS进行处理。如果需要重定向,那么现在就从表单中删除remote=>true

剩下的是我最初的答案,不管怎样,实施其中一些可能是一个想法:


我认为您需要
重定向\u到成功\u路径

更新:

好的,这将起作用,(希望):

1-在routes.rb中执行以下操作:

resources :users do
  member do
    get 'success'
  end
end
在用户控制器中,创建一个名为success的新操作

def success
  @user = User.find(params[:id])
end
创造行动

def create
  @user = User.new(params[:user])     
  respond_to do |format|
  if @user.save
    format.html { redirect_to success_user_path(@user) }  
  else
    format.html { render :new }  
    format.js   { render :form_errors }
  end
end

然后创建
/views/users/success.html.erb
(或haml)并在其中放入您想要的任何内容

对控制器的这一简单更改解决了我的问题:

我替换了:

format.html { redirect_to :success } 
与:

现在一切正常


决定暂时不使用recaptcha

format.html{redirect_to:success}基本上在填写表单后,我单击按钮,它会保存用户详细信息,但会保留在页面上,如果我再次按下它,它会因电子邮件用户名上设置的唯一性规则而无法验证。基本上,它会再次尝试保存。您是否在routes中为
:success
设置了路由。rb?Yep:match'success'=>“users#success”查看用户提交此表单时发生的情况的日志输出会很有帮助OK,我更新了它(注意,我已在创建操作中更新了重定向到)。这感觉有点粗糙,但是我在提交要求remote=true的jquery模式表单时遇到了类似的问题。我遇到了类似的问题,重定向正在工作,但在控制器的show函数中格式是JS,所以这就成功了!
def create
  @user = User.new(params[:user])     
  respond_to do |format|
  if @user.save
    format.html { redirect_to success_user_path(@user) }  
  else
    format.html { render :new }  
    format.js   { render :form_errors }
  end
end
format.html { redirect_to :success } 
format.js { render :js => "window.location = '#{success_path}'" }