特别是一对多的关系
我有一个带有User
模型和House
模型的Rails 3.1应用程序(这就像一个组)。 我已经在这两者之间建立了多对多关联模型Membership
关系,并且有一些方法可以管理连接模型中某个房屋中用户的角色。
但我的问题是用户只有一个房子而不是很多。 所以我总是要做user.houses.first来得到他的房子(我已经设置了一个帮助房子,但是设计不好所以我试图把has_one :membership
和has_one :house, :through => :membership
而不是has_many :memberships
和has_many :houses, :through => :memberships
。 但是每次我尝试从User
访问house时我都会收到错误。
怎么可能像我试图做的那样用连接表设置这种一对多的关系?
先感谢您。
如果您打算使用一对多关系,那么关联应该是。
屋
has_many :会员资格
has_many :users,:through =>:成员资格
用户
has_one :会员资格
has_one :house,:through =>:成员资格
我想不出用关系做这个的方法,但是你可以把它留作复数,然后在用户中定义house:
class User has_many :memberships has_many :houses, :through => :memberships def house houses.first end end
- Rails accepted_nested_attributes_for始终创建嵌套模型,但不更新它们
- 将两个ActiveRecord :: Relation与OR组合,而不是AND,返回一个Relation而不是一个Array,以便稍后能够分页
- Ruby – 确保只有一个类对象
- Rails返回所有二级关联
- Rails – Paperclip在不应该的情况下validation附件大小?
- 通过关系更新rails has_many
- Rails 3.1限制用户创建的对象
- Rails应用程序错误 – ActiveRecord :: PendingMigrationError正在等待迁移; 运行’rake db:migrate RAILS_ENV = development’来解决此问题
- 将Rails中的主键更改为字符串