我有两种类型的用户,并为他们生成设计模型和 View 。不得不这样做基本上是因为在这里使用角色是不可能的。两个用户都是不同的,并且会有不同的仪表板。还必须将数据存储在不同的表中,因为这些数据将在 .我成功地为他们创建了不同的路线,但现在我计划继续前进,我想遵循一个明确的结构,以后不会造成问题。我采用多态方式关联模型,并将它们命名为用户 A 和用户 B。
用户A
将能够发布查询
将能够为 B 发放付款
将能够保留和删除作业
用户 B
只能回答问题
将在完成工作后收到付款
将能够查看作业
*注意 - 这些只是我必须完成的许多功能中的一部分。
我在 SO 调查了其他问题,但没有得到具体答案。期待那些可能取得相同或处于类似情况的人的建议。提前致谢。
最佳答案
首先使用CanCanCan获取权限
在数据库中添加角色列,并生成能力模型
在你的用户模型中定义角色
enum role: [:Admin, :Enduser, :Moderator]
针对不同的仪表盘
制作仪表板 Controller
class DashboardController < ApplicationController
def index
end
end
在你的 route 制作根仪表板
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
并根据您的要求将不同的 View 插入到不同的文件中。
关于ruby-on-rails - 具有不同仪表板的多个设计用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23562621/