私がバニラをやろうとすると、それが作用するはずのオブジェクト/レコードがあるにもかかわらず、find_each
それは戻りnil
続けます。
[28] pry(main)> Node.find_each do |node|
[28] pry(main)* end
Node Load (1.0ms) SELECT "nodes".* FROM "nodes" ORDER BY "nodes"."id" ASC LIMIT 1000
=> nil
[29] pry(main)> Node.all.find_each do |node|
[29] pry(main)* node
[29] pry(main)* end
Node Load (0.7ms) SELECT "nodes".* FROM "nodes" ORDER BY "nodes"."id" ASC LIMIT 1000
=> nil
[31] pry(main)> Node.count
(0.5ms) SELECT COUNT(*) FROM "nodes"
=> 2
[32] pry(main)> Node.find_each do |node|
[32] pry(main)* puts node
[32] pry(main)* end
Node Load (0.5ms) SELECT "nodes".* FROM "nodes" ORDER BY "nodes"."id" ASC LIMIT 1000
#<Node:0x007fd49ffbc680>
#<Node:0x007fd49ffbc388>
=> nil
find_each
そのモデルのすべてのオブジェクトを同じように単純に出力するにはどうすればよいですか。またNode.all
、を実行した場合にのみ、各ノードのARオブジェクトのIDのように見えるものを出力するのはなぜputs node
ですか。
[35] pry(main)> Node.all
Node Load (0.4ms) SELECT "nodes".* FROM "nodes"
=> [#<Node id: 85, name: "House Fire 2", family_tree_id: 57, user_id: 57, media_id: 228, media_type: "Video", created_at: "2015-05-15 00:20:26", updated_at: "2015-05-20 01:06:34", circa: nil, is_comment: nil, cached_votes_total: 0, cached_votes_score: 0, cached_votes_up: 0, cached_votes_down: 0, cached_weighted_score: 0, cached_weighted_total: 0, cached_weighted_average: 0.0>,
#<Node id: 86, name: "10PP Form Video", family_tree_id: 57, user_id: 57, media_id: 229, media_type: "Video", created_at: "2015-05-15 01:26:28", updated_at: "2015-05-22 20:35:58", circa: nil, is_comment: nil, cached_votes_total: 1, cached_votes_score: 1, cached_votes_up: 1, cached_votes_down: 0, cached_weighted_score: 1, cached_weighted_total: 1, cached_weighted_average: 0.0>]
> Node.find_each do |node|
> end
=> nil
この場合、nilはこのブロックの定義からのものです。の結果ではありませんNode.find_each
。
次のように、ブロック内の何かを印刷してみてください。
> Node.find_each do |node|
> puts node.id
> end
2つのIDが出力されます。
すべてのオブジェクトを印刷するには:
> Node.find_each do |node|
> puts node.inspect
> end
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加