2011-09-16 33 views
0

在安装Devise之前,我有一个现有的用户模型,因此我按照说明here设计路线的问题 - 查看页面中的错误

我甚至生成了设计视图。但是,当我在我的本地主机,并输入本地主机:3000 /用户/ sign_in或任何其他路线可通过设计,这是行不通的。

而且,我现有的REST风格的路线,我使用了

resources :users 

不再可用,除非我有两个用户:

devise_for :users 
resources :users 

,但我认为我应该删除该资源:用户在我的路线文件中有devise_for:users行时。

这是怎么回事?有人有什么主意吗?

编辑

的问题是,当我去到的用户/密码,它告诉我,有一个与ID =密码没有用户,但是这条线路提供给我。

我也有用户/ sign_in和用户/ sign_out的问题。由于某种原因它重新导向我的根路径。有时它有效,其他时间则不起作用,我不知道为什么。日志看起来像这样:

Started GET "https://stackoverflow.com/users/sign_in" for 127.0.0.1 at 2011-09-16 19:05:43 -0400 
Processing by Devise::SessionsController#new as HTML 
User Load (0.3ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1 
Redirected to http://localhost:3000/ 

回答

0

什么在这里不起作用?你在日志或其他地方找到有用的东西吗?另外,你有没有设置你的:用户模型,包括devise :recoverable, :authenticateable, ...等?

您需要config/routes.rb中定义的devise_forresourcesdevise_for设置路线,将去设计控制器,但不处理任何其他事情。所以你仍然需要正常的机智的路线为用户模型添加,更新,删除等。

+0

嗨,刚编辑的问题,基本上我的本地主机:3000 /用户/密码不起作用。它告诉我“没有ID =密码的用户”。 – noob

+0

@ming,确保devise_for是在resources:users之前的routes.rb文件中定义的。 routes.rb文件按顺序处理,并返回匹配的第一个路由。 – ipd

+0

谢谢。事实证明,这个问题不是设计。我意识到日志说,mysql SELECT'users'。* FROM'users' WHERE'users'.'email'是NULL NULL限制1.不是取出邮件[email protected],而是取出电子邮件NULL。任何想法,为什么? – noob