2017-08-27 4 views
1

J'ai un modèle de poste, image et vidéo et j'ai besoin de modéliser les associations entre poste, image et vidéo. L'image et le support vidéo doivent appartenir à un message. J'ai aussi besoin de l'enregistrement post pour pouvoir récupérer tous les post_media liés en appelant @ post.post_media.Rails Associations - cas spécifique

J'ai besoin de ces tests pour passer:

context "viedos" do 
    let(:post) { create(:post) } 
    let(:video) { create(:video) } 

    it "can associate and video" do 
    post.videos << video 
    expect(post.videos.last).to eql(video) 
    end 

    it "can create an associated video" do 
    video_attributes = attributes_for(:video) 
    post.videos.create(video_attributes) 
    expect(post.videos.last.attributes).to include(video_attributes.stringify_keys) 
    end 

    it "can create associated video as post_media" do 
    post.post_media.create(medium: video) 
    expect(post.videos.last).to eql(video) 
    end 
end 

context "post_media" do 
    let(:post) { create(:post) } 
    let(:video) { create(:video) } 
    let(:image) { create(:image) } 

    before do 
    post.videos << video 
    post.images << image 
    end 

    it "should return all post related media" do 
    expect(post.post_media.count).to eql(2) 
    expect(post.post_media.map(&:medium)).to match_array([video, image]) 
    end 
end 

J'apprécie votre aide :)

Répondre

0

Cette recherche très proche, mais pas tout à fait la même chose, comme unique Héritage de Table, dans lequel vous définissez Video et Image en tant que sous-types de PostMedia.

L'interface n'est pas tout à fait la même, mais semble assez proche pour l'étudier en option.

http://api.rubyonrails.org/classes/ActiveRecord/Inheritance.html