我正在创建一个自定义的“立即购买”页面,该页面是用户,地址,销售,SaleLine和付款模式的组合。要启动付款流程,我需要在回调中指定销售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
因此,中间的关键线是创建新销售记录的中间位置。此页面不需要任何类型的登录或任何东西(因为它在技术上是注册页面)。这会是一个问题吗?我想任何时候,即使机器人导航到页面,它也会产生另一个销售记录。那会最终赶上我吗?我应该每晚运行一个脚本来删除超过一天的所有孤儿Sale记录,还是应该尝试不同的算法?
答案 0 :(得分:1)
Rails可以处理所需数量的模型
模型只是.rb
文件,当你调用ActiveRecord时会打开它们,它们不是应用程序或任何超级资源密集型的
然而,他们所代表的不仅仅是打开文件。您真正询问的问题是“我的架构设置正确吗?”,这是一个不同的球赛
ActiveRecord协会
Rails是“object orientated”,这意味着所有你必须解决一个对象。这通常是ActiveRecord Object
,它由数据库查询和数据库组成。相关数据
Rails应用程序的一个最大问题是ActiveRecord Association结构的低效使用。 ActiveRecord Associations通过在模型中定义“关系”来工作,允许您调用一个数据和一个数据。自动将其相关数据附加在对象
中大多数人的问题是ActiveRecord Assocations选择他们不需要的数据,导致不必要的昂贵的数据库调用。这就是问题出现的地方,也是你想要解决的问题
创建独立记录
如果你想用另一个创建一个记录,你可以使用after_create
方法,如下所示:
#app/models/bitcoin.rb
Class BitCoin < ActiveRecord::Base
after_create :create_sale
end
如果它正确相关,这实际上会为您创建销售记录