簡體   English   中英

設計沒有設計路線的模型

[英]Devise model without devise routes

我有兩個Rails項目共享一些文件,一個是實際的應用程序,另一個是應用程序的管理工具。 它們共享遷移,模型,一些配置等。管理工具是ActiveAdmin 1.0.0-pre2,Rails的版本是4.2。

我有兩個Devise模型,User和AdminUser。 在app項目中,沒有admin_user的路由,我想保持這種方式,但如果我不添加:

devise_for :admin_users

對於routes文件,我得到了各種奇怪的錯誤,例如:

ActionView::Template::Error: undefined method `admin_user_confirmation_url' for #<ActionDispatch::Routing::RoutesProxy:0x007fc613ecde08>

要么:

Could not find a valid mapping for <AdminUser ...>

每當我在應用程序項目中創建AdminUser時(樣本數據生成)。

如何在沒有路線的情況下實現設計模型?

如果您只想要Admin的模型,要有一些方法和數據,請從admin用戶遷移和模型中刪除所有設計條目(database_authenticatable等),並將其用作普通的activerecord模型。 如果您需要任何特定的設計模塊,可以逐個添加。 但是您添加的設計模塊可能需要控制器和路由存在。

如果我是你,我會怎么做:

  1. 將兩個應用程序合並為一個。
  2. 在用戶遷移中創建一個新字段並將其命名為“role”,默認值為“user”
  3. 使用Cancan或類似的東西根據角色(“用戶”或“管理員”)設置不同的權限。 例如,具有角色“user”的用戶無法查看任何管理頁面。 這樣,無論誰是您網站的管理員,都不需要單獨的模型/帳戶來登錄活動管理員。

不要誤會我的意思,我只是想不出把雙方當作不同項目的好理由。 它只會給你的邏輯和實現增加問題,你將不得不經常傳遞信息。 我實際上按照上面解釋的方式使用ActiveAdmin,一切都像魅力一樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM