Ruby on rails 将项目分配给多个用户
我刚刚开始学习rails,我遇到了一个小问题 想象一下,您必须选择不同类型的用户:客户端和管理员。两者都存储在同一用户模型中,并带有布尔值(admin=true/false)。这就是我如何区分这些。所以现在有了一些项目。这些只是带有多个属性的帖子,如名称、描述、类别 我想让我的管理员看到所有的项目,他应该有能力编辑这些项目,但同时我想让客户用户只看到他被分配到的项目,他不应该能够编辑这些项目 所以总结:管理->查看所有帖子,并能够编辑和分配客户给他们 客户->查看分配给他但无法编辑的项目。他应该只看到分配给他的人Ruby on rails 将项目分配给多个用户,ruby-on-rails,login,devise,Ruby On Rails,Login,Devise,我刚刚开始学习rails,我遇到了一个小问题 想象一下,您必须选择不同类型的用户:客户端和管理员。两者都存储在同一用户模型中,并带有布尔值(admin=true/false)。这就是我如何区分这些。所以现在有了一些项目。这些只是带有多个属性的帖子,如名称、描述、类别 我想让我的管理员看到所有的项目,他应该有能力编辑这些项目,但同时我想让客户用户只看到他被分配到的项目,他不应该能够编辑这些项目 所以总结:管理->查看所有帖子,并能够编辑和分配客户给他们 客户->查看分配给他但无法编辑的项目。他应该
我怎么做?使项目属于用户。这意味着:
- 生成迁移以添加DB列(运行此命令):
- 将关联添加到您的
项目
模型(
):app/models/Project.rb
- 将关联添加到您的
模型(用户
):app/models/User.rb
- 用户的项目列表
- 所有项目的管理员列表
app/controllers/projects\u controller.rb
):
采用类似的方法定义编辑操作:使用
验证\u admin\u状态
回调检查试图访问该操作的用户是否是管理员,然后选择(或更新)项目记录。使项目属于用户。这意味着:
- 生成迁移以添加DB列(运行此命令):
- 将关联添加到您的
项目
模型(
):app/models/Project.rb
- 将关联添加到您的
模型(用户
):app/models/User.rb
- 用户的项目列表
- 所有项目的管理员列表
app/controllers/projects\u controller.rb
):
采用类似的方法定义编辑操作:使用
验证\u admin\u status
回调检查试图访问该操作的用户是否是管理员,然后选择(或更新)项目记录。检查视图和控制器操作
if current_user.admin
签入视图和控制器操作
if current_user.admin
你用谷歌搜索过这个吗?你不可能是第一个想要在他的应用程序中扮演不同角色的人……你用谷歌搜索过这个吗?你不可能是第一个想要在他的应用程序中扮演不同角色的人。。。
has_many :projects
class ProjectsController < ApplicationController
before_action :authenticate_user!
before_action :verify_admin_status, :only => [:admin_list]
def user_list
@projects = current_user.projects
end
def admin_list
@projects = Project.all
end
private
def verify_admin_status
unless current_user.admin
raise ActionController::RoutingError.new('Not Found') # or whatever other error you want, i.e. 403
end
end
end
get 'projects/mine', :to => 'projects#user_list'
get 'projects/admin', :to => 'projects#admin_list'
if current_user.admin