Questions tagged «associations»

关联通常是指ORM中的模型之间的关系,例如ActiveRecord。


6
是什么引起此ActiveRecord :: ReadOnlyRecord错误?
在此之前的问题得到了解答。我实际上发现我可以从该查询中删除联接,所以现在可以使用的查询是 start_cards = DeckCard.find :all, :joins => [:card], :conditions => ["deck_cards.deck_id = ? and cards.start_card = ?", @game.deck.id, true] 这似乎起作用。但是,当我尝试将这些DeckCard移动到另一个关联中时,出现ActiveRecord :: ReadOnlyRecord错误。 这是代码 for player in @game.players player.tableau = Tableau.new start_card = start_cards.pop start_card.draw_pile = false player.tableau.deck_cards << start_card # the error occurs on this line end 和相关的模型(Tableau是桌上的玩家卡片) class Player …


4
MongoDB多对多协会
您将如何与MongoDB建立多对多关联? 例如; 假设您有一个Users表和Roles表。用户有许多角色,而角色有许多用户。在SQL领域中,您将创建一个UserRoles表。 Users: Id Name Roles: Id Name UserRoles: UserId RoleId MongoDB中如何处理相同类型的关系?

4
Rails:在Rails中使用带有has_one关联的build
在此示例中,我创建了一个userno profile,然后稍后profile为该用户创建一个。我尝试将build与has_one关联一起使用,但这使它崩溃了。我看到此工作的唯一方法是使用has_many。本user应该只有最多只能有一个profile。 我一直在尝试这个。我有: class User < ActiveRecord::Base has_one :profile end class Profile < ActiveRecord::Base belongs_to :user end 但是当我这样做时: user.build_profile 我得到错误: ActiveRecord::StatementInvalid: Mysql::Error: Unknown column 'profiles.user_id' in 'where clause': SELECT * FROM `profiles` WHERE (`profiles`.user_id = 4) LIMIT 1 Rails中有没有一种方法可以使0或1有关联?

4
单向和双向JPA和Hibernate关联之间有什么区别?
单向和双向关联有什么区别? 由于在db中生成的表都是相同的,所以我发现的唯一区别是双向关联的每一侧都有一个引用,而单向则没有。 这是单向关联 public class User { private int id; private String name; @ManyToOne @JoinColumn( name = "groupId") private Group group; } public class Group { private int id; private String name; } 双向关联 public class User { private int id; private String name; @ManyToOne @JoinColumn( name = "groupId") private …

5
在Rails 3中构建与新
在Rails 3 文档中,build关联方法被描述为与new方法相同,但是具有自动分配外键的功能。直接来自文档: Firm#clients.build (similar to Client.new("firm_id" => id)) 我在其他地方也读过类似的文章。 但是,当我使用new(例如,some_firm.clients.new不带任何参数)时,会自动创建新客户端的firm_id关联。我现在正在控制台中盯着结果! 我想念什么吗?文档是否有点过时(不太可能)?build和之间有什么区别new?

5
Rails迁移:使用替代名称的t.references?
因此,对于学校课程,我有一个像这样的create_table: create_table :courses do |t| t.string :name t.references :course t.timestamps end 但我想参考 2门其他课程,如: has_many :transferrable_as # A Course has_many :same_as # Another Course 我可以说以下吗? t.references :transferrable_as, :as=> :course

11
如何在Factory girl中创建has_and_belongs_to_many关联
鉴于以下 class User < ActiveRecord::Base has_and_belongs_to_many :companies end class Company < ActiveRecord::Base has_and_belongs_to_many :users end 您如何为公司和用户(包括双向关联)定义工厂?这是我的尝试 Factory.define :company do |f| f.users{ |users| [users.association :company]} end Factory.define :user do |f| f.companies{ |companies| [companies.association :user]} end 现在我尝试 Factory :user 可能不足为奇的是,由于工厂彼此递归地使用彼此定义自己,因此会导致无限循环。 更令人惊讶的是,我在任何地方都没有提到如何执行此操作,是否有定义所需工厂的模式,或者我做的是根本错误的事情?

6
Rails与多个外键的关联
我希望能够在一个表上使用两列来定义一种关系。因此,以任务应用为例。 尝试1: class User < ActiveRecord::Base has_many :tasks end class Task < ActiveRecord::Base belongs_to :owner, class_name: "User", foreign_key: "owner_id" belongs_to :assignee, class_name: "User", foreign_key: "assignee_id" end 所以呢 Task.create(owner_id:1, assignee_id: 2) 这使我可以执行Task.first.owner返回用户1和Task.first.assignee返回用户2但User.first.task什么也不返回的操作。这是因为任务不属于用户,它们属于所有者和受让人。所以, 尝试2: class User < ActiveRecord::Base has_many :tasks, foreign_key: [:owner_id, :assignee_id] end class Task < ActiveRecord::Base belongs_to :user end 这完全失败了,因为似乎不支持两个外键。 …

7
Rails-最佳实践:如何创建依赖的has_one关系
您能告诉我创建has_one关系的最佳实践是什么吗? fe,如果我有一个用户模型,并且必须有一个配置文件... 我该怎么办呢? 一种解决方案是: # user.rb class User << ActiveRecord::Base after_create :set_default_association def set_default_association self.create_profile end end 但这似乎并不干净……有什么建议吗?

3
Rails has_one:通过关联
Rails的has_one :through关联可以通过第二种模型来帮助与第三种模型建立一对一的关联。除了建立快捷方式关联之外,该功能的真正用途是什么,否则还有一步之遥。 从Rails指南中获取以下示例: class Supplier < ActiveRecord::Base has_one :account has_one :account_history, :through => :account end class Account < ActiveRecord::Base belongs_to :supplier has_one :account_history end class AccountHistory < ActiveRecord::Base belongs_to :account end 可能会让我们做类似的事情: supplier.account_history 否则将达到: supplier.account.history 如果仅是为了更简单的访问,那么从技术上讲,可能存在一对一关联,该关联将一个模型与经过n-1个模型的第n个模型连接起来,以便于访问。除了快捷方式,我还有什么想念的吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.