Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 4 设计在用户注册后不重定向到指定页面_Ruby On Rails 4_Devise - Fatal编程技术网

Ruby on rails 4 设计在用户注册后不重定向到指定页面

Ruby on rails 4 设计在用户注册后不重定向到指定页面,ruby-on-rails-4,devise,Ruby On Rails 4,Devise,问题:我正在使用Deviate提供的注册后路径方法,但我似乎无法让用户在注册后重定向到指定页面。目前,我收到一个模板缺失错误,url为www.localhost:3000/users。理想情况下,我希望将用户重定向到www.localhost:3000/subscribers/new 注册\u controller.rb class RegistrationsController < Devise::RegistrationsController def create @use

问题:我正在使用Deviate提供的
注册后路径
方法,但我似乎无法让用户在注册后重定向到指定页面。目前,我收到一个
模板缺失
错误,url为
www.localhost:3000/users
。理想情况下,我希望将用户重定向到
www.localhost:3000/subscribers/new

注册\u controller.rb

class RegistrationsController < Devise::RegistrationsController
  def create
    @user = User.new(sign_up_params)
    @domain = @user.email.split('@').last
    @company = Company.find_by_domain(@domain)
    @user.company_id = @company.id

    if @user.save
      after_sign_up_path_for(@user)
    else
      render 'new'
    end
  end

  private

    def sign_up_params
      params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation, :participation_code, :company_id)
    end


  protected

    def after_sign_up_path_for(resource)
      "/subscribers/new"
    end
end
...
devise_for :users, controllers: { registrations: "registrations" }
...
我得到的错误日志

Template is Missing

Missing template registrations/create, devise/registrations/create,    
devise/create, application/create with {:locale=>[:en], :formats=  
[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby,   
:coffee, :arb, :haml, :jbuilder]}.

更新:我已尝试在注册(资源)后将
路径移动到
应用程序控制器
,但仍然得到相同的结果

在应用程序控制器中添加以下方法

设计:用户登录后重定向到何处
def-after\u-sign\u-path\u(资源)

"http://www.google.com“#也许值得在操作后添加重定向方法:创建回调?

您不需要创建控制器,您可以通过定义

def after_sign_in_path_for(resource)
   your_path
 end

记住在路径中使用after_sign_,而不是在路径中使用after_sign_,这非常有趣。我只是改变了

def create
...
end


现在一切都很好,我的
在注册之后的路径(资源)
方法被识别。

我已经尝试过了,并且得到了同样的结果。我更新了我的帖子以反映这一点。您得到的模板丢失错误或其未重定向到路径?你能在你的问题中粘贴日志吗?有一件事你能先检查一下吗?删除自定义重定向并检查它的工作与否?如果它不起作用,那么你需要修复它。你需要生成设计视图。rails生成设备:视图也查看以下链接:
def create
...
end
def update
...
end