如何使我的应用程序主页默认为用户注册,而不是使用设计登录?

时间:2011-10-25 07:31:14

标签: ruby-on-rails devise routes

我正在使用Rails 3并设计并尝试制作它,以便当有人来到我的网络应用程序时,他们会直接进入用户注册sign_up链接而不是登录链接。

我很确定我遇到了这个问题,因为我的路线配置如下:

root :to => "babies#new" 

访问婴儿模型需要用户登录。为了解决这个问题,我尝试将其更改为:

root:to => “用户#sign_up”

它似乎不起作用?我得到一个错误,说我有:

uninitialized constant UsersController

任何人都可以建议我做错了吗?

提前致谢!

3 个答案:

答案 0 :(得分:1)

其中一个解决方案是创建单独的控制器main,并在其中创建一个操作sign_up_redirect。然后配置您的路由文件,如下所示:

root :to => "main#sign_up_redirect"

然后写下该行动:

redirect_to new_user_registration_path

*注册路径可能与您不同

答案 1 :(得分:0)

找不到相应的控制器时发生以下错误。您应该检查您是否有UsersController或UserController

uninitialized constant UsersController

答案 2 :(得分:0)

除非您确定设计路线,否则root :to => 'users#sign_up'不存在。我还强烈建议不要将任何Devise路由设置为root,因为所有Devise钩子都重定向到root即。 after_sign_upafter_sign_inafter_update。我认为,对于期望的结果,您有两种选择。

首先,只需在您的根网址页面上放一个注册表单即可。您可以按照this教程中的逻辑来完成此操作,显然可以从登录更改为注册。

很容易想到的第二个选项是创建一个直通控制器,它只有一个重定向到注册页面的索引操作。这样的事情看起来像这样。

class PassthroughController < ApplicationController

  def index
    redirect_to 'devise/registrations#new'
  end

end

这两个选项都很简单,可以实现。