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

find次のような1回の呼び出しでIDを渡します

@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])

2つの主な違いは、他のクエリをチェーンできるのwhereに対し、find_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)

さらに、コメントから読んだことですが、どちらも配列である@postsとをマージしたいので、単純にそれらを追加するために使用できます。Post.all+

@postsその答えのほかに、私はあなたがしているようにあなたがする必要はないと思いますPost.all

配列と同様@postsに、2つの配列を単純にマージできます。

@posts + Post.all

または、次のことができます。

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