Ruby on rails - @user.city 和 @city.user 有什么区别?



根据我的理解@city。User是属于该特定用户的城市,@user。City是所有用户所在城市的数组。我不确定我是否理解正确。

请帮忙清理一下,谢谢!

Scenario #1

一对多关系:User和Cities

@user.cities => Get all the `city` records for a particular `user`(@user) 
@city.user => Get the `user` record for a particular `city`(@city)

Scenario #2

One To One关系:User和City

@user.city => Get the `city` record for a particular `user`(@user)
@city.user => Get the `user` record for a particular `city`(@city)

根据你的关联,如果你已经通过id或其他东西获得了城市对象,并且你想找到它的用户,你可以执行@city.user来找出该城市属于哪个用户。如果你有一个User,想找到他们所有的城市,如果它是has_many协会,你会做@user.cities,如果它是has_one协会,你会做@user.city

@city.user@city对象发送user消息。@user.city@user对象发送city消息

在rails中,如果每个用户都有一个关联的城市,通常@user将是表示用户的对象,而@user。City将返回与用户关联的城市对象。同样,@city。Users返回与该城市关联的用户数组,如果没有与该城市关联的用户,则返回空数组。

最新更新