与has_many的错误关联

扩张

我试图在用户和项目之间建立基本的关联:

user.rb

class User < ActiveRecord::Base
  has_many :projects, foreign_key: 'owner_id'
  has_many :project_members, through: :project_members
end

project.rb

class Project < ActiveRecord::Base
  has_many :project_members, dependent: :destroy
  has_many :users, through: :project_members
end

project_member.rb

class ProjectMember < ActiveRecord::Base
  belongs_to :user
  belongs_to :project
end

我的project_members表:

+----+------------+---------+
| id | project_id | user_id |
+----+------------+---------+
|  1 |          1 |       1 |
|  2 |          2 |       1 |
+----+------------+---------+

和我的项目表:

+----+-------+----------+
| id | name  | owner_id |
+----+-------+----------+
|  1 | test1 |        1 |
|  2 | test2 |        2 |
+----+-------+----------+

我为什么与

current_user.projects

仅projects.owner_id = current_user.id的项目,而不是用户所属成员的项目?

但是我认为尝试获取所需数据是错误的一面。我在/ projects上,项目控制器获取数据。我想我应该使用类似的东西:

class ProjectsController < ApplicationController
  # GET /projects
  def index
    @projects = Project.all
  end
end

但是我怎么才能只获得current_user.id成员的项目呢?

卡斯佩尼

我认为您应该设置一点点不同:

class User < ActiveRecord::Base
  has_many :owned_projects, class_name: "Project", foreign_key: 'owner_id', dependent: :restrict_with_error
  has_many :project_members, dependent: :destroy
  has_many :projects, through: :project_members
end

class Project < ActiveRecord::Base
  has_many :project_members, dependent: :destroy
  has_many :users, through: :project_members

  belongs_to :owner, class_name: "User"
end

为了获得所有项目,current_user是您的一员,可以执行以下操作:

current_user.projects

为了获得current_user拥有的所有项目,您可以执行以下操作:

current_user.owned_projects

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

与has_many的错误关联

来自分类Dev

has_many关联上的验证错误未阻止保存

来自分类Dev

活动记录关联 - 错误 w has_many:通过关联?

来自分类Dev

has_many,通过Ecto中的关联

来自分类Dev

has_many关联的嵌套形式

来自分类Dev

覆盖has_many关联获取器

来自分类Dev

属于和has_many关联问题

来自分类Dev

从ID数组更新has_many关联

来自分类Dev

从has_many关联中过滤集合?

来自分类Dev

has_many关联忽略限制条件

来自分类Dev

如何添加has_many关联?

来自分类Dev

has_many:通过不保存关联

来自分类Dev

Has_many rails关联=> NoMethodError

来自分类Dev

在has_many关联中处理ID

来自分类Dev

has_many:通过关联

来自分类Dev

has_many与factorygirl的关联测试

来自分类Dev

has_many关联的嵌套形式

来自分类Dev

多态 Has_many 与多态类的关联

来自分类Dev

Rails 5 可选的 has_many 关联

来自分类Dev

Rails错误:accepts_nested_attributes_for没有更新我的has_many关联

来自分类Dev

Rails 4通过以下方式找不到关联has_many:关系错误

来自分类Dev

从rails 3升级到rails 4时,has_many关联的顺序错误

来自分类Dev

FactoryGirl:has_many:through,validates_presence_of:关联错误:不能为空?

来自分类Dev

同时使用has_one和has_many关联

来自分类Dev

Rails中的has_one和has_many关联

来自分类Dev

Rails 脚手架关联 has_many 错误:1 个错误禁止保存此产品

来自分类Dev

Rails关联has_many和has_many通过相同的STI模型

来自分类Dev

has_many绑定错误的参数

来自分类Dev

has_many:通过似乎错误