究竟是最后一行代码在做什么?

时间:2011-04-25 18:36:04

标签: ruby-on-rails

@user = find_user
@user_sport = UserSport.new(params[:iuser_sport])
@user.user_sports << @user_sport

最后一行代码究竟在做什么?

2 个答案:

答案 0 :(得分:2)

它将@user_sport追加到user_sports数组。

更多信息:<<

  

追加 - 将给定对象推送到   这个数组的结尾。这个表达   返回数组本身,所以几个   追加可以链接在一起。

如果您希望看到该单词,

push也是一种等效的方法。 <<很常见,因此归结为个人偏好。

答案 1 :(得分:2)

来自rails API doc

  

添加一个或多个对象   通过创建关联来收集   连接表(collection.push和   collection.concat是此的别名   方法)。

'&lt;&lt;&lt;在activeRecords对象之间创建关联,

这里用户有很多UserSports所以@ user.user_sports&lt;&lt; @user_sport定义@user和@user_sport之间的关联。