我正在寻找一种方法将购买的文件提供给网络应用的用户。基本上用户会从我的网站购买“产品”,此时他们可以下载他们购买的文件(可能是我预编译的zip文件)
我正在使用Rails 2.3.8,并使用Braintree解决方案进行付款处理。有没有一种标准的方法来实现这一点,使用短代码或什么? Braintree内置了什么,插件/ gem是否存在?
我真的在寻找一个正确的方向,以确定如何做到这一点。
谢谢!
答案 0 :(得分:1)
您可以做的是让每个Product
模型have_many
获得批准的用户。当BrainTree为您提供用户为产品付款的确定时,您可以将该用户添加到已批准的用户列表中。因此,在ProductController
中检查current_user是否为已批准用户,如果是,请下载该文件,否则重定向。
例如:
product.rb
class Product < ActiveRecord::Model
has_many approved_users, :class => User
end
product_controller.rb
class ProductController
def download
@product = Product.find_by_id(:id)
if @product.approved_users.includes?(current_user)
# Give them the file
else
flash[:notice] = "You must buy the product first!"
redirect_to product_sales_url(@product)
end
end
end
或类似的东西。我的语法可能有些偏差,但这应该可以帮到你。