2011-03-14 9 views
2

웹 응용 프로그램 사용자에게 구매 한 파일을 제공 할 방법을 찾고 있습니다. 기본적으로 사용자는 내 사이트에서 '제품'을 구매할 것입니다. 구입 한 파일을 다운로드 할 수 있습니다 (사전 컴파일 된 압축 파일 일 가능성이 높음)Rails - 결제 후 다운로드 가능한 파일 제공

나는 레일 2.3.8을 사용하고 있습니다. 지불 처리 Braintree 솔루션을 작동. 짧은 코드 등을 사용하여 표준을 달성 할 수 있습니까? Braintree에 내장 된 것이 있습니까, 플러그인/보석이 있습니까?

난 정말이 일반적 수행 방법에 대한 올바른 방향으로 누르는 것만으로 찾고 있어요 ..

감사합니다!

답변

1

Producthave_many 명의 승인을 얻은 사용자 만 가능합니다. BrainTree가 사용자가 제품에 대해 지불 한 OK를 제공하면 해당 사용자를 승인 된 사용자 목록에 추가 할 수 있습니다. 따라서 ProductController에서 current_user가 승인 된 사용자인지 확인하고, 그렇지 않으면 파일을 다운로드하고 그렇지 않으면 파일을 리디렉션합니다. exsample에 대한

:

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 

또는 뭔가. 내 구문이 약간 쉬울 지 모르지만, 이것이 도움이 될 것입니다.

+0

은 공정한 생각처럼 보입니다. – Rabbott

관련 문제