Rails - Доставка загружаемых файлов после оплаты - PullRequest
2 голосов
/ 14 марта 2011

Я ищу способ доставки купленных файлов пользователям веб-приложения.По сути, пользователь приобретает «продукт» с моего сайта, после чего он может загружать приобретенные файлы (вероятно, это будет zip-файл, который я предварительно скомпилировал)

Я использую Rails 2.3.8 иобработать платежи, работая с Braintree Solutions.Есть ли стандартный способ добиться этого, используя короткие коды или что-то?Есть ли в Braintree что-то встроенное, существует ли плагин / драгоценный камень?

Я действительно ищу всего лишь толчок в правильном направлении, чтобы узнать, как это обычно делается.

1 Ответ

1 голос
/ 14 марта 2011

То, что вы могли бы сделать, - это иметь 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 

Или что-то в этом роде.Мой синтаксис может быть немного неправильным, но это должно помочь вам.

...