红宝石 1.8.7
@post = Post.find(1) + Post.find(2)
Post 的未定义方法“+”
@post = Post.find(1).merge(Post.find(2))
Post的未定义方法合并
红宝石 1.8.7
@post = Post.find(1) + Post.find(2)
Post 的未定义方法“+”
@post = Post.find(1).merge(Post.find(2))
Post的未定义方法合并
将 ID 传递find
给单个调用,例如
@posts = Post.find([1, 2])
请注意,如果没有 ID=1 或 ID=2 的帖子,这将引发错误。如果您不这样做,请使用where
或find_all_by_id
@posts = Post.where(id: [1, 2])
@posts = Post.find_all_by_id([1, 2])
两者之间的主要区别在于,您可以将其他查询链接起来,where
而find_all_by_id
已经返回一个数组,因此您不能链接查询。
您只需附加 ID 即可找到项目数组。所以在你的情况下
@posts = Post.find(1,2)
还:
@posts = []
@posts << Post.find(1)
@posts << Post.find(2)
并继续添加:
@posts << Post.find_all_by_id([5, 6])
甚至:
@posts << Post.all
你可以简单地做:
@posts = Post.find(1,2)
另外,我从评论中读到,你想合并@posts
和Post.all
,这两个都是数组,所以你可以简单地使用+
来添加它们。
除了那个答案,我认为你不需要@posts
像你正在做的那样做Post.all
。
作为@posts
一个数组,您可以简单地合并两个数组:
@posts + Post.all
或者你可以这样做:
@post | Post.all