2013-03-15 22 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

我終於可以再次產生設計的意見解決問題。我不知道爲什麼,但設計/會話文件夾丟失了,它是用另一種視圖來做的,當我開始使用它時,它就起作用了。

無論如何。