0

红宝石 1.8.7

@post = Post.find(1) + Post.find(2)

Post 的未定义方法“+”

@post = Post.find(1).merge(Post.find(2))

Post的未定义方法合并

4

4 回答 4

3

将 ID 传递find给单个调用,例如

@posts = Post.find([1, 2])

请注意,如果没有 ID=1 或 ID=2 的帖子,这将引发错误。如果您不这样做,请使用wherefind_all_by_id

@posts = Post.where(id: [1, 2])
@posts = Post.find_all_by_id([1, 2])

两者之间的主要区别在于,您可以将其他查询链接起来,wherefind_all_by_id已经返回一个数组,因此您不能链接查询。

于 2013-03-14T11:24:19.420 回答
2

您只需附加 ID 即可找到项目数组。所以在你的情况下

@posts = Post.find(1,2)

于 2013-03-14T11:22:34.820 回答
1

还:

@posts = []
@posts << Post.find(1)
@posts << Post.find(2)

并继续添加:

@posts << Post.find_all_by_id([5, 6])

甚至:

@posts << Post.all
于 2013-03-14T11:26:33.987 回答
1

你可以简单地做:

@posts = Post.find(1,2)

另外,我从评论中读到,你想合并@postsPost.all,这两个都是数组,所以你可以简单地使用+来添加它们。

除了那个答案,我认为你不需要@posts像你正在做的那样做Post.all

作为@posts一个数组,您可以简单地合并两个数组:

@posts + Post.all

或者你可以这样做:

@post | Post.all
于 2013-03-14T11:34:24.680 回答