我正在使用Rails 3并设计并尝试制作它,以便当有人来到我的网络应用程序时,他们会直接进入用户注册sign_up链接而不是登录链接。
我很确定我遇到了这个问题,因为我的路线配置如下:
root :to => "babies#new"
访问婴儿模型需要用户登录。为了解决这个问题,我尝试将其更改为:
root:to => “用户#sign_up”
它似乎不起作用?我得到一个错误,说我有:
uninitialized constant UsersController
任何人都可以建议我做错了吗?
提前致谢!
答案 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_up
,after_sign_in
,after_update
。我认为,对于期望的结果,您有两种选择。
首先,只需在您的根网址页面上放一个注册表单即可。您可以按照this教程中的逻辑来完成此操作,显然可以从登录更改为注册。
很容易想到的第二个选项是创建一个直通控制器,它只有一个重定向到注册页面的索引操作。这样的事情看起来像这样。
class PassthroughController < ApplicationController
def index
redirect_to 'devise/registrations#new'
end
end
这两个选项都很简单,可以实现。