ruby-on-rails - 具有不同仪表板的多个设计用户

标签 ruby-on-rails ruby ruby-on-rails-3 postgresql devise

我有两种类型的用户,并为他们生成设计模型和 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/

相关文章:

Jquery基本文件上传

ruby-on-rails - Rails : Date. 今天 - 1.day

ruby-on-rails - 在 rails 中创建大标签

ruby - 在 rails3/jruby 中,什么会间歇性地导致这个错误? SAVEPOINT active_record_1 不存在

ruby-on-rails - Rails 3教程第11章 "Validation failed: Email has already been taken"错误

javascript - 我可以在 twitter-bootstrap popover 数据内容中使用 html 标签吗?

ruby-on-rails - 创建扩展 "uuid-ossp"的权限被拒绝

ruby-on-rails - Ruby on Rails - 按 has_many 关系的字段排序对象

ruby-on-rails-3 - :remote => true/data-remote on a form loaded via ajax

ruby-on-rails - Ruby on Rails link_to 内部 ID