遍历活动记录中数组中的元素

iterate through elements in array within active record

我正在尝试进行比较并 return 声明该项目是否在数组内。菜单是我在活动记录中的一个对象,它由 3 个属性组成,菜单类型、餐点和餐厅 ID。对于膳食属性,我为其设置了一个变量,它实际上是一个包含膳食名称的数组。

在我的代码中,当我输入“#{menu.meal}”时,我返回...

["Pancakes W/ Eggs and Bacon", "Bacon Egg and Cheese", "Oatmeal W/ Raisins", "Scrambled Eggs W/ Grits", "Blueberry Waffles W/ Syrup", "Chocolate Chip Pancakes W/ Sausage", "Yogurt Muffin"]

这是我在我的种子文件中设置的一组膳食。 在下面的代码中,我想做的是当用户输入它想要的食物时,如果它退出,我想搜索所有的食物,如果它退出,那么用户可以继续,如果没有,我想输出一个错误消息说它不存在。

 puts "What meal would you like to order"
 item_meal = gets.chomp


 menus_meals = res.menus.select do |menu|
   binding.pry
   menu.meal == item_meal

看来你的代码是正确的,我只是建议你在这种情况下使用 include?,因为你只是想检查 item_meal 是否存在于 menus 中。

if res.menus.include?(item_meal)
  # user proceeds
else
  # show an error message
end