Kir*_*ein 4 ruby refactoring ruby-on-rails
我正在编写一个小浏览器游戏作为学习RoR的项目,我对它很陌生.
这是一个由cronjob定期调用的方法.
我猜应该有一些方法可以在魔药数组中添加元素,然后在最后进行批量保存,我也不喜欢每次在循环中点击数据库以再次获得市场的项目数量.
def self.restock_energy_potions
market = find_or_create_market
potions = EnergyPotion.find_all_by_user_id(market.id)
while (potions.size < 5)
potion = EnergyPotion.new(:user_id => market.id)
potion.save
potions = EnergyPotion.find_all_by_user_id(market.id)
end
end
Run Code Online (Sandbox Code Playgroud)
我不确定我是否理解你的问题.你在找这样的东西吗?
def self.restock_energy_potions
market = find_or_create_market
potions = EnergyPotion.find_all_by_user_id(market.id)
(potions.size...5).each {EnergyPotion.new(:user_id => market.id).save }
end
end
Run Code Online (Sandbox Code Playgroud)
注意范围内的三点; 如果已经有5个,你不想创造药水.
此外,如果您的魔药被链接(例如has_many),您可以通过market.potions属性创建它们(我在这里猜测,关于用户和市场之间的关系 - 细节取决于您的模型的设置方式)并立即保存它们.我不认为数据库的节省会很重要.
| 归档时间: |
|
| 查看次数: |
287 次 |
| 最近记录: |