@ user.city和@ city.user之间有什么区别?

时间:2014-03-25 22:59:54

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

根据我的理解@ city.user是属于该特定用户的城市,@ user.city是所有用户城市的数组..不确定如果我理解正确的话。

请帮忙清理一下,谢谢!

3 个答案:

答案 0 :(得分:1)

Scenario #1

一对多关系:用户和城市

@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

一对一关系:用户和城市

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

答案 1 :(得分:0)

根据您的关联,如果您已经通过ID或其他内容获得了城市对象,并且您想要找到其用户,则可以@city.user找出该城市所属的用户。如果您有User并想要查找所有城市,则@user.cities如果是has_many关联则为@user.city,如果是has_one则为{{1}}关联。

答案 2 :(得分:0)

@city.useruser对象发送@city消息。 @user.citycity对象发送@user条消息。

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