ruby-on-rails - 如何使用 faker gem 生成假的食物名称?

标签 ruby-on-rails ruby faker

我已经阅读了几个教程,但我仍然不确定如何做我想做的,因此如果听起来很垃圾,我很抱歉。我有一个名为“Sandwitches”的事件记录,它具有以下属性:namepriceavailability。因为我想为它生成假数据,所以我不太确定如何实现这样的目标,因为 name 属性 faker 可以生成代表人名的名称。例如,我想为三明治生成名称,例如“Club Sandwitch”或“Pesto with Feta Cheese”。有什么方法可以用 faker gem 来做到这一点吗?或者基本上我可以使用任何其他 gem 来实现吗?

我很感激你能提供的任何帮助!

最佳答案

如果你在这里查看 faker gem:https://github.com/stympy/faker/blob/master/lib/faker/default/food.rb (注意,我不隶属于 faker 开发)你可以看到有一个食物模块。所以试试这个:

>> Faker::Food.dish
=> "Tiramisù"
>> Faker::Food.dish
=> "Mushroom Risotto"
>> Faker::Food.vegetables
=> "Radish"

我还看到了甜点模块和其他一些看起来很有趣的模块。在 github 的目录结构中向上一两棵树查看其他选项。 Faker 做了很多事情!

编辑:此外,您的 AR table 应该是“三明治”,而不是“三明治女巫”;)他们不是拥有沙之力的女巫,他们是带面包的食物;p

另一个编辑:我没有看到专门三明治的选项。但也许因为这是针对虚假数据的,所以您可以只使用 dish 选项。

最终编辑我发誓:你可以用类似的东西“伪造”一个三明治:

breads = ["Brioche", "Rye", "Whole Wheat"] # Add more breads here, https://en.wikipedia.org/wiki/List_of_breads can help
ingredients = (1..(rand(3)+1)).map{rand > 0.5 ? Faker::Food.ingredient : Faker::Food.vegetables}
sandwich = "#{ingredients.to_sentence} on #{breads.sample(1).first}"

可以返回如下结果:

=> "Buckwheat Flour on Rye"
=> "Broccoli and Jicama on Whole Wheat"
=> "Peppers on Rye"
=> "Chia Seeds on Rye"
=> "Pecan Nut and Anchovies on Brioche"
=> "Arugula on Rye"

关于ruby-on-rails - 如何使用 faker gem 生成假的食物名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54353607/

相关文章:

ios - Heroku 偶尔返回 "hostname"not found

javascript - jQuery 无限滚动、kaminari 和 Rails 4。在另一个页面上触发无限滚动。刷新后不行

php - Faker 和 Laravel 5

python 导入错误: cannot import name 'Faker' from 'faker'

ruby-on-rails - 是_admin?在 rails 中运行? - 未定义的方法错误

ruby-on-rails - Chartkick 饼图在使用库选项时不显示百分比

ruby - 使用 omnicontacts gem 在 ruby​​ 脚本中获取雅虎联系人

ruby-on-rails - 为什么 Pik 不安装 Ruby?

ruby-on-rails - 在 ruby​​ on rails 中删除数组的替代元素

ruby-on-rails - Rails - FactoryGirl - 测试模型 [验证]