【问题标题】:how to assign all the projects to belong to user?如何将所有项目分配给用户?
【发布时间】:2012-10-11 21:40:52
【问题描述】:

我使用 devise 进行身份验证,并且我有另一个名为 project 的模型,我如何分配用户拥有所有项目以及如何分配如下所示?

user_id     project_id  role1_id  
----------  ----------  ----------
1           5           2                     
1           6           1
2           5           3

【问题讨论】:

  • 所以您希望用户成为 x 个项目的成员(m 对 n 关系)?你想定义每个用户的成员类型(又名角色)?

标签: ruby-on-rails ruby-on-rails-3


【解决方案1】:

Ryan Bates 在this 线程上提供了解决方案。您可以阅读它以获得完整的详细信息,但它涉及覆盖 current_ability 方法。

 # in controller
def current_ability
  @current_ability ||= Ability.new(current_user, current_project)
end

# in Ability class
def initialize(user, project)
  if user.admin_for_project?(project)
    can :manage, :all
  else
    can :read, :all
  end
end

【讨论】:

    【解决方案2】:
    has_many :project_ids, Class: 'Your Class name' ('USER' or 'WHATEVER')
    

    如果你的数据库中有外键,你可以添加

    has_many :project_ids, foreign_key: 'project_id', Class: 'Your Class name' ('USER' or 'WHATEVER')
    

    以上仅为示例,您需要提供更多详细信息才能获得准确的答案。您的问题和描述不足以提供正确的答案。希望对你有帮助....

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-07
      • 1970-01-01
      • 2022-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-12
      相关资源
      最近更新 更多