簡體   English   中英

具有不同儀表板的多個設計用戶

[英]Multiple Devise Users with different dashboards

我有兩種類型的用戶,並為他們生成設計模型和視圖。 不得不這樣做,因為在這里使用角色是不可能的。 兩個用戶都不同,並且將具有不同的儀表板。 還必須將數據存儲在不同的表中,因為這些數據將被進一步處理。 我成功地為他們兩個創造了不同的路線,但現在我計划前進,我想遵循一個明確的結構,以后不會引起問題。 我采用多態方式關聯模型,並將它們命名為用戶A和用戶B.

用戶A.

將能夠發布查詢

將能夠為B發放付款

將能夠保留和刪除工作

用戶B

只是能夠回答問題

將在完成工作時收到付款

將能夠查看工作

*注意 - 這些只是我必須完成的許多功能中的一部分。

我已經調查了其他問題,但我沒有得到具體答案。 期待那些可能已達到相同或處於類似情況的人的建議。 提前致謝 。

首先使用CanCanCan進行許可

將角色列添加到數據庫中,並生成能力模型

將角色定義到您的用戶模型中

  enum role: [:Admin, :Enduser, :Moderator]

對於不同的儀表板

制作儀表板控制器

class DashboardController < ApplicationController
  def index
  end
end

在您的路線中制作根儀表板

root 'dashboard#index'

在views / dashboard / index.html.erb中

  <% if current_user.role == "Admin" %>
  <%= render 'admin' %>
  <% elsif current_user.role == "Moderator"  %>
  <%= render 'moderator' %>
  <% elsif current_user.role == "ClientUser" %>
    <%= render 'client_user' %>
  <% end %>

在views / dashboard / index.html.erb中使文件像

_admin.html.erb
_moderator.html.erb
_client_user.html.erb

並根據您的要求將不同的視圖插入到不同的文件中。

您需要使用CanCan gem進行授權,您可以按照鏈接查看它的文檔和railscasts 視頻教程。

暫無
暫無

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

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