甚至不确定这是(a)可以做的事情还是(b)我需要关注的事情。我有一个项目要写一个seeds.rb
文件,用于查看带有测试数据的RoR应用程序。我的文件如下:
require 'random_data'
50.times do
Post.create!(
title: RandomData.random_sentence,
body: RandomData.random_paragraph
)
end
posts = Post.all
100.times do
Comment.create!(
post: posts.sample,
body: RandomData.random_paragraph
)
end
unique_post = {
title: 'unique title',
body: 'unique body'
}
unique_post_id = Post.find_or_create_by!(unique_post)
unique_comment = {
post: unique_post_id,
body: "unique comment"
}
Comment.find_or_create_by!(unique_comment)
puts "Seed finished"
puts "#{Post.count} posts created"
puts "#{Comment.count} comments created"
puts "#{unique_post.count} unique posts created"
puts "#{unique_comment.count} unique comments total"
一切正常。结果消息是:
Seed finished
251 posts created
501 comments created
2 unique posts created
2 comments total
我有两个问题:
感谢。
答案 0 :(得分:1)
您看到2个唯一帖子和评论的原因是因为您计算了对象属性的哈希键,而不是创建的对象。
{ key1: 123, key2: 456, key3: 789 }.count
=> 3
您只需查询表格即可使用Rails控制台查询这些独特的帖子/评论:Comment.find_by(title: 'unique title')