【发布时间】:2016-09-25 21:46:34
【问题描述】:
我安装了 'faker' gem,但是当我使用它 (Faker::Book.name) 时,它不会显示随机名称,而只显示一个字符串 "Faker::Book"
lib > 任务 > data_populate
require 'colorize'
namespace :data_populate do
namespace :populate do
desc "Populate all model data set"
task :all => :environment do
require 'faker'
puts "\n'Populating Model Data'".yellow
Job.where(name: "Faker::Book").destroy_all
10.times do |l|
Job.create(name: Faker::Book.name, description: Faker::Lorem.sentence(7), business_id: 1)
end
end #all end
end #populate end
end #end rake dashboard
代码运行时,Job Title 始终为“Faker::Book”
【问题讨论】:
-
你试过用大括号括起来
Job.create(name: { Faker::Book.name } , description: { Faker::Lorem.sentence(7) }, business_id: 1) -
刚试过,语法错误,意外'}',期待=> ...eate(name: { Faker::Book.name }, description: { Faker::Lorem...
-
首先
"Faker::Book"是一个文字字符串,因此除非您调用 eval 否则永远不会对其进行评估。其次,您不能使用Job.where(name: Faker::Book)- Faker::Book 是一个类 - 调用name或任何其他生成器方法将生成一个新的唯一值。 -
Max,我正在调用 Faker::Book.name,但返回值是“Faker::Book”,而不是类调用中的随机值。
-
刚刚开始工作 - 存在版本问题 -> 我指定了正确的最新版本并重新运行捆绑安装。我认为关于 Book.name、Book.title 等的版本可能发生了变化另外,直接调用 Faker::Book 来填充 db 不是一个好方法,所以我分配给局部变量并使用该变量来填充 Job .create 感谢大家早上的快速回复!!!
标签: ruby-on-rails faker