2014-02-18 2 views
0

Я создал интерес, в котором размещалась ассоциация.Полиморфные ассоциации Статус в концерне

Мне нужно установить статус полиморфной ассоциации.

has_one :status, class_name: 'VideoStatus', inverse_of: :video, dependent: :destroy 

belongs_to :video, inverse_of: :status 

Я не могу сделать эту Ассоциацию. Как это сделать?

require 'active_support/concern' 

module EncodeStatuses 
    extend ActiveSupport::Concern 

    FORMATS = %w[mp4] 

    HIGH_VERSION = 'high' 
    MEDIUM_VERSION = 'medium' 
    LOW_VERSION = 'low' 

    VERSIONS = [HIGH_VERSION, MEDIUM_VERSION, LOW_VERSION] 

    included do 
    has_one :status, class_name: 'VideoStatus', inverse_of: :video, dependent: :destroy 
    accepts_nested_attributes_for :status, update_only: true 
    delegate :success?, :failure?, :waiting?, :encoding?, to: :status 
    end 
end 

модели/video.rb

class Video < ActiveRecord::Base 
    include EncodeStatuses 
    ... 
end 

модели/post.rb

class Post < ActiveRecord::Base 
    include EncodeStatuses 
    ... 
end 

модели/video_status.rb

class VideoStatus < ActiveRecord::Base 
    STATUS_WAITING = 'waiting' 
    STATUS_ENCODING = 'encoding' 
    STATUS_SUCCESS = 'success' 
    STATUS_FAILURE = 'failure' 

    STATUSES = [STATUS_WAITING, STATUS_ENCODING, STATUS_SUCCESS, STATUS_FAILURE] 

    belongs_to :video, inverse_of: :status 
    belongs_to :post, inverse_of: :status 
    ... 
end 
+0

сделал вы разместили associ внутри «включено» блок? –

+0

@AnilMaurya да, мне нужно сделать только полиморфную ассоциацию «статусом». – user3311412

+0

Вы можете показать свою озабоченность, чтобы мы могли отлаживать. –

ответ

0
has_one :status, as: :video_status, dependent: :destroy 

class VideoStatus < ActiveRecord::Base 
    belongs_to :video_status, polymorphic: true 
end 
+0

и не забудьте добавить video_status_id, video_status_type в таблицу video_status –

+0

Хорошо, спасибо. Я правильно понял вопрос? – user3311412

+0

@ user3311412 если мой ответ помог вам, тогда отметьте его принятым. –

Смежные вопросы