Ruby on rails 如何将_重定向到我的应用程序中的其他页面?

Ruby on rails 如何将_重定向到我的应用程序中的其他页面?,ruby-on-rails,model-view-controller,controller,routes,Ruby On Rails,Model View Controller,Controller,Routes,当我的用户注册时,它最初会被重定向到空白的个人资料页面 但是,我需要将用户重定向到其他信息页面,以便检索更多信息 我的用户控制器看起来像这样 class UsersController < ApplicationController def show @user = User.find(params[:id]) end def new @user = User.new end def additional_info @user = User.ne

当我的用户注册时,它最初会被重定向到空白的个人资料页面

但是,我需要将用户重定向到其他信息页面,以便检索更多信息

我的用户控制器看起来像这样

 class UsersController < ApplicationController

 def show
   @user = User.find(params[:id])
 end

 def new
   @user = User.new
  end


  def additional_info
    @user = User.new
  end


def create
 @user = User.new(user_params)
 if @user.save
  UserMailer.welcome_email(@user).deliver
  sign_in @user
  redirect_to users: 'additional_info'
  flash[:success] = "Welcome to InYourShoes!"
  return @user       
 else
   render'new'
 end
结束

如您所见,附加信息是我试图重定向到的另一个页面。我知道我创建了两个users对象,但我不确定它是否正确。坦率地说,我有点迷路了

我的页面路径如下:

resources :users
resources :sessions, only: [:new, :create, :destroy]
match '/additionalinfo',to: 'users#additional_info', via: 'get'
谢谢你的帮助

在您的路线中

match '/additionalinfo',to: 'users#additional_info', via: 'get', as: :additional_info
内部控制器

redirect_to additional_info_path

或者,您可以将重定向行更改为:

redirect_to action: 'additional_info'
假设您在路由中定义了操作:

get :additional_info, to: 'users#additional_info' # use get rather than match

最好使用
get
,因为Rails 4不推荐
match
。我会编辑答案。你能解释一下这个部分吗::附加信息?这是因为我在userController中定义它的方式?“as”用于为任何路由命名。你可以给as::info,那么你的路径就会变成info_path。你能解释一下get vs match的好处吗?Rails 4不赞成这样做。使用
match
揭示一些问题的一篇好文章:安全性、错误做法、无RESTful…尝试重新启动服务器或检查是否有任何问题,然后\u筛选器导致
无路由匹配。我在Rails 3.2应用程序中试用过,效果非常好。你能粘贴完整的错误信息吗?
get :additional_info, to: 'users#additional_info' # use get rather than match