在 Rails 中,您是否需要注意创建太多的模组



我正在创建一个自定义的"立即购买"页面,该页面是用户,地址,销售,销售线和付款模型的组合。 要启动付款流程,我需要在回调中指定销售 ID。 所以我的 #new 方法看起来像这样...

# new
def bitcoin
  require 'cgi'
  @payment_to_tender = get_cost
  @sale = Sale.create
  begin
    payment = create_new_payment_wallet(ENV["BITCOIN"], "http://www.example.com/a/b", @sale.id)
  end
end

因此,其中的关键行是创建新的销售记录的中间。 此页面不需要任何类型的登录或任何东西(因为它在技术上是注册页面(。 这会是个问题吗? 我认为任何时候,即使是机器人导航到该页面,它也会产生另一个销售记录。 这最终会赶上我吗? 我应该每晚运行一个脚本来删除所有超过一天的孤立销售记录,还是应该尝试其他算法?

Rails可以根据需要处理任意数量的模型

模型只是调用ActiveRecord时打开的.rb文件,它们不是应用程序或任何超级资源密集型的东西

但是,它们所代表的不仅仅是打开文件。你真正问的问题是"我的架构设置是否正确?",这是一个不同的球赛


活动记录协会

Rails是"面向对象的",这意味着你所做的一切都必须围绕一个对象工作。这通常是一个ActiveRecord Object,它由数据库查询和相关数据组成。

Rails应用程序的最大问题之一是ActiveRecord Association结构的使用效率低下。ActiveRecord 关联通过在模型中定义"关系"来工作,允许您调用一条数据并自动将其相关数据附加到对象中

对于大多数人来说,问题是ActiveRecord Assocations会获取他们不需要的数据,从而导致不必要的昂贵数据库调用。这就是问题出现的地方,也是您要解决的问题


创建独立记录

如果要创建另一个记录,可以使用 after_create 方法,如下所示:

#app/models/bitcoin.rb
Class BitCoin < ActiveRecord::Base
   after_create :create_sale
end

这实际上会为您创建一个销售记录,如果它正确相关

最新更新