Tag: 协会

Rails关联 – 如何将'has_many'对象添加到'所有者'

在我的应用程序中, user有很多score_cards而score_card属于user 问题是,每当我创build一个新的score_card ,即ScoreCardsController.create被调用时,如何将这个新创build的score_card添加到current_user (我正在使用devise,所以current_user是一个有效的User对象)。

如何删除单个HABTM关联商品而不删除商品本身?

如何在不删除项目本身的情况下移除HABTM相关项目? 例如,假设我有三个同学在科学课上。 如何删除StudentsClasses表中的科学对象而不删除实际的科学参考? 我猜, Student.Classes.first.delete不是一个好主意。 我使用JavaScript进行拖放来添加和删除,而不是checkbox。 有什么想法吗?

Rails关联 – has_many =>:通过 – 但是相同的模型

我在做什么: 我有一个博客,并希望显示主帖下面的相关post。 class Post < ActiveRecord::Base has_many :related_posts has_many :posts, :through => :related_posts end 然后在连接模型/表中 class RelatedPost < ActiveRecord::Base belongs_to :post end 当然,还有一个名为related_posts的表格,带有两个post_id列。 显然这里有一些缺陷,我只是不知道如何使这种关联在Rails中工作。

Ruby on Rails的:多个has_many:通过可能?

是否有可能有多个has_many :through在Rails中相互传递的关系? 我收到了这样的build议,作为我发布的另一个问题的解决scheme,但一直没有得到它的工作。 朋友是通过连接表的循环关联 。 我们的目标是创build一个has_many :through为friends_comments ,所以我可以采取一个User并做一些像user.friends_comments一样查询他的朋友所做的所有评论。 class User has_many :friendships has_many :friends, :through => :friendships, :conditions => "status = #{Friendship::FULL}" has_many :comments has_many :friends_comments, :through => :friends, :source => :comments end class Friendship < ActiveRecord::Base belongs_to :user belongs_to :friend, :class_name => "User", :foreign_key => "friend_id" end 这看起来不错,有道理,但不适合我。 当我尝试访问用户的friends_comments时,这是我在相关部分中遇到的错误: ERROR: column users.user_id does not […]

Rails迁移:t.reference与替代名称?

所以我有一个像这样的学校课程的create_table: create_table :courses do |t| t.string :name t.references :course t.timestamps end 但我希望它引用其他两个课程,如: has_many :transferrable_as # A Course has_many :same_as # Another Course 我可以说以下吗? t.references :transferrable_as, :as=> :course

如何在Factory Girl中创buildhas_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 也许毫不奇怪的是,当工厂recursion地使用彼此来定义自己时,这导致无限循环。 更令人惊讶的是,我还没有发现如何在任何地方做到这一点,有没有一种模式来定义必要的工厂,或者我正在做一些根本性的错误?

Rails:dependent =>:destroy VS:dependent =>:delete_all

在导轨中,它是这样描述的: 对象将被另外销毁,如果它们与:dependent => :destroy相关联,并且被删除,如果它们与:dependent => :delete_all 对,很酷。 但被破坏和被删除有什么区别? 我试了两次,似乎也是这样做的。

MongoDB多对多关联

你将如何与MongoDB进行多对多的关联? 例如; 假设你有一个Users表和一个Roles表。 用户有很多angular色,angular色有很多用户。 在SQL的土地上,你会创build一个UserRoles表。 Users: Id Name Roles: Id Name UserRoles: UserId RoleId 在MongoDB中如何处理同样的关系?

在rails中使用has_one关联构build

在这个例子中,我创build了一个没有profile的user ,然后为这个用户创build一个profile 。 我尝试使用has_one关联构build,但是被炸毁了。 我看到这个工作的唯一方法是使用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 有轨道有0或1协会的方式吗?

如何限制每个logging/组包含的关联?

我有一个模型,文章,其中有许多摘要。 我想载入最新的10篇文章,并且对于每篇文章,最多的点数都是摘要。 我的function如下所示: public function getArticles($category, $viewName) { $subArticles = $this->Articles->findByCategory($category)->contain([ 'Abstracts' => function ($q) { return $q ->select(['body', 'points', 'article_id']) ->where(['Abstracts.approved' => true]) ->limit(10) ->order(['Abstracts.points' => 'DESC']); } ]) ->limit(10) ->order(['Articles.created' => 'DESC']) ; $this->set( $viewName . 'Articles', $subArticles ); } 我得到的结果不是我想要的。 通过SQL查看,首先CakePHP获取类别(罚款)中的所有items.id。 然后,CakePHP使用刚刚发现的10个articles.id文件进入摘要表,并要求获得最高票数的10个摘要(属于这些文章)。 问题是,我想要1篇摘要,而不是属于该类别的任何文章的10摘要。 我该如何解决这个问题? 谢谢! 编辑 ndmbuild议这是在包含模型上使用limit()的重复,所以我试图在那里的解决scheme。 也就是说,我把这个添加到我的模型中: $this->hasOne('TopAbstract', [ 'className' => […]