require 'delayed_job' class Request < ActiveRecord::Base attr_accessible :title, :description, :meta, :videos_attributes, :credentials_attributes, :timestamp_form belongs_to :user has_many :credentials, :dependent => :delete_all has_many :link_urls, :dependent => :delete_all has_many :videos, :dependent => :delete_all validates_associated :credentials, :length => {:minimum => 1} accepts_nested_attributes_for :credentials, :allow_destroy => true accepts_nested_attributes_for :link_urls, :allow_destroy => true accepts_nested_attributes_for :videos validates_presence_of :title, :description, :meta, :timestamp_form, :videos validates_length_of :meta, :minimum => 3, :maximum => 30, :tokenizer => lambda{ |value| value.split(',') }, :too_short => "must have at least %{count} keywords", :too_long => "must have at most %{count} keywords" validates_uniqueness_of :timestamp_form def with_credentials_for(usr) SiteTemplate.active.compatible_with(usr).each do |st| credentials.build :name => st.name, :sitetemplate_id => st.id, :flag_sub => st.flag_sub, :flag => st.flag, :flag_cat => st.flag_cat end self end def with_linkurls_for(usr) SiteTemplate.active.compatible_with(usr).each do |st| link_urls.build :sitetemplate_id => st.id, :name => st.name end self end def with_video_for(usr) videos.build :user_id => @user self end def upload(request) video = Video.find_by_request_id(request.id) request.credentials.checked.each do |link| puts link.pwd puts link.encrypted_pwd link.delay.distribute(link,request,video) end end end