class User < ActiveRecord::Base
has_many :posts
end
class Post < ActiveRecord::Base
belongs_to :user
end
irb中的:
> u = User.first
=> #<xxxxx>
> u.posts.class
=> Array
My env:
$ruby -v
ruby 1.9.2p312
$rails --version
--version
Rails 3.1.0
我记得几乎所有的关系查询都返回rails3中的ActiveRe
我在rails 5.2中遇到过几次这个错误(在此之前我没有注意到它,也没有捕捉到它)。我在SO或rails文档上找不到任何有用的信息。我终于弄明白了什么是is...so,我想我应该在这里发布一个Q/A给其他人找到。
private method `through_reflection' called for #<ActiveRecord::Associations::HasManyThroughAssociation:0x00007ff1d4511878>
Rails新手,所以请耐心听我说。我需要关于如何在我的两个模型之间正确设置活动记录关联的建议。
就目前而言,我有一个用户模型。用户has_many联系人。和一个用户has_many发表帖子。简单地说:
class User < ApplicationRecord
has_many :posts, dependent: :destroy
has_many :contacts, dependent: :destroy
class Contact < ApplicationRecord
belongs_to :user
class Post < Applicatio
所以我是Rails n00b,我想创建一个“收藏”关系,这样一个用户就可以有很多喜欢的项目。我不完全确定如何做到这一点,这就是我要尝试的方式,但我不确定这是不是一个好的做法:
class User < ActiveRecord::Base
has_many :favorites
//other code
end
class Favorite < ActiveRecord::Base
belong_to :user
has_one :item
end
class Item < ActiveRecord::Base
belongs_to :item
end
这是一个
Class User
has_many :universities
end
Class University
belongs_to :user
has_many :courses
end
Class Course
belongs_to :university
end
现在,我想要找到任何用户的courses。
我可以使用以下查询:
User.find(1).universities.collect{|x| x.courses}
但是,有没有其他简单的方法可以得到这个结果呢?请解释一下你的答案,以便我能理解。提前感谢!
让一个模型同时具有has_many和has_one关系,正确的(Rails)方式是什么?在我的例子中,我希望我的Device模型能够跟踪它的当前位置和所有以前的位置。这是我的尝试,它是有效的,但有没有更好的方法?
模型
class Location < ActiveRecord::Base
belongs_to :device
end
class Device < ActiveRecord::Base
has_many :locations # all previous locations
belongs_to :location # current location
无论如何,我可以在rails控制台中通过在下面放置行来获取结果。
group = UserGroup.find_by_sql("select user_group_memberships.user_group_id, sum(-bets.amount + bets.amount_paid) as bankroll_net_profit from bets inner join user_group_memberships ON bets.user_id = user_group_memberships.user_id GROUP BY user_group_memberships.
当前是my User ->订阅模型
# User Model
has_many :subscriptions
# Subscription Model
belongs_to :user
我想添加的能力,为用户输入一个促销代码,并有权通过订阅的应用程序,这是捆绑到促销代码输入。对如何实现这一点有什么建议吗?
我正在尝试制作一个商店应用程序。我有以下模型
class Item(models.Model):
name = models.CharField(max_length=200)
class Order(models.Model):
item = models.ManyToManyField(Item)
因此,我想要实现的是在一个订单中添加多个项目,但我也希望指定订单中每个项目的数量,但我无法找到一个很好的方法。我想在创建订单之后重写save(),并创建一个自定义表单,为添加的每一项请求一个数量。但也许有更好/更容易的方法来实现这一点?
这可能不是最好的解决方案在大多数情况下,但我想要一个表与数据表单3表。
class Media < ActiveRecord::Base
belongs_to :user
belongs_to :type
has_many :ratings
end
class User < ActiveRecord::Base
has_many :medias
has_many :ratings
end
class Rating < ActiveRecord::Base
belo