ruby-on-rails – 如何改进此Rails代码?
发布时间:2020-12-17 02:50:12 所属栏目:百科 来源:网络整理
导读:我正在编写一个小浏览器游戏作为学习RoR的项目,我对它很陌生. 这是一个由cronjob定期调用的方法. 我猜应该有一些方法可以在魔药阵列中添加元素,然后在最后进行批量保存,我也不喜欢每次在循环中点击数据库以再次获得市场的项目数量. def self.restock_energy_
我正在编写一个小浏览器游戏作为学习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 解决方法
我不确定我是否理解你的问题.你在找这样的东西吗?
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 注意范围内的三点;如果已经有5个,你不想创造药水. 此外,如果您的魔药被链接(例如通过has_many),您可以通过market.potions属性创建它们(我在这里猜测,关于用户和市场之间的关系 – 细节取决于您的模型的设置方式)并保存他们一下子.我不认为数据库的节省会很重要. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |