2013-03-15 25 views
0

我为两个Web应用程序共享一个数据库。用户模型已被其中一个应用程序使用,因此,为了登录另一个应用程序,我必须创建另一个模型以避免混合用户信息。Rails 3 +使用不同的型号名称

我可以让Devise为这个叫做SystemUser的新模型工作。现在的问题是我必须使用其他名称的每个变量。例如:current_system_usersystem_user_signed_in?等。我在整个应用程序中使用这些变量和原始名称,我想知道是否有避免覆盖它的方法。例如:通过创建一个名为current_user的方法返回current_system_user,并且以前面提到的其他变量的方式。

+2

这听起来像一个可怕的可怕的想法,并会回来咬你。 – thomasfedb 2013-03-15 16:32:33

+0

你有什么建议? – 2013-03-18 14:01:52

+0

要么:1)跨应用程序共享用户帐户,或者2)不共享数据库 - 而是暴露API。 – thomasfedb 2013-03-19 12:44:22

回答

1

我想这应该做的伎俩:

devise_for :users, class_name: 'SystemUser' 
+0

这不起作用。 – 2013-03-18 13:44:35

+0

你有什么错误吗? – Stefan 2013-03-18 13:47:28

+0

好吧,我只是得到“无效的用户或密码”的错误信息。 – 2013-03-18 13:50:12

0

你有没有考虑过使用惨惨的角色?

https://github.com/ryanb/cancan

+0

这不是一个角色问题。我必须使用不同模型的名称进行登录,而不是Devise默认使用的名称。 – 2013-03-18 13:45:20

0

我终于可以再次产生设计的意见解决问题。我不知道为什么,但设计/会话文件夹丢失了,它是用另一种视图来做的,当我开始使用它时,它就起作用了。

无论如何。