在Rails中,如何在has_many_through
关系上有条件地关联记录?使用以下Rails文档示例:
class Physician < ApplicationRecord
has_many :appointments
has_many :patients, through: :appointments
end
class Appointment < ApplicationRecord
belongs_to :physician
belongs_to :patient
end
class Patient < ApplicationRecord
has_many :appointments
has_many :physicians, through: :appointments
end
假设我想要预约两位医生。也就是说,没有任何预约记录,只有少于两名医生。但是,那个约会怎么能引用每个医生呢?
示例
基本上,我想跟踪喜欢其他用户和他们之间相互喜欢的用户。当两个用户彼此喜欢时建立连接。但是,当只有一个用户喜欢另一个用户时,我不想要连接,但这不是互惠的。
当用户A喜欢用户B. A&#34;喜欢&#34;被建造。 当用户B喜欢用户A. A&#34;喜欢&#34;被建造。 A&#34;连接&#34;也是创造的。
连接应该可以调用:
connection.users
用户应该可以致电:
user.likes
user.connections
我遇到的问题是,当这种关系表是相互的时,它怎么知道呢?
答案 0 :(得分:0)
对于原始问题,const TodoItems = React.creatClass({
getInitialState() {
return {
items : [
{id:1,name:"Gym"},
{id:2,name:"Jump"},
{id:3,name:"Racing"}
]
}
},
renderItem(){
return(
<ul>
this.state.items.map(item,i =>
<li key={i}>item.name</li>
)
</ul>
)
},
render(){
return (
<renderItem />
)
}
})
在两个用户之间没有区别,所以我会将其建模为connection
关系并验证它只有两个用户。
类似有两个用户,one to many
(类似的提供者)和liker
(类似的接收者)。每次创建新likee
时,都应检查like
是否也喜欢likee
。 liker
如果是,则与两个用户创建新连接。
If likee.likes.where(likee: liker)?
我想补充一点,我不是100%肯定这一点,因为我现在正在学习Rails。但这就是我想出来的,希望它有用(也是正确的)。