2014-06-23 2 views
0

레일에 내 ruby ​​4 activeadmin 젬에 문제가 있습니다 잘 작동하는 여러 리소스를 생성했지만 has_many 관계를 통해 리소스에 문제가 있습니다 . 새 레코드는 조인 테이블을 통해 등록되지 않습니다. 여기 has_many가 조인 테이블에 등록하지 않음 양식을 통해

내 모델 :

video.rb

class Video < ActiveRecord::Base 
    has_many :album_videos 
    has_many :albums, :through => :album_videos 
end 

Album.rb

class Album < ActiveRecord::Base 
    has_many :album_videos 
    has_many :videos, :through => :album_videos 
end 

Album_video.rb

class AlbumVideo < ActiveRecord::Base 
    belongs_to :video 
    belongs_to :album 
end 

그리고 앨범에 대한 ActiveAdmin을 파일album.rb

ActiveAdmin.register Album do 

    menu :priority => 6, :label => proc{ "Album de vidéos" } 
    filter :album_videos 
    permit_params :titre, :description, videos_attributes: [:id, :titre, :_update,:_create] 

    form do |f| 
    f.inputs 
    f.inputs "Vidéos" do 
     f.input :videos, as: :check_boxes, collection: Video.all, :member_label => :titre 
    end 
    f.actions 
    end 
end 

앨범의 양식이 잘 표시되어 있으며, 등록 된 모든 비디오가있는 패널이 있습니다. 새 앨범을 만들면 앨범이 등록되지만 album_videos 테이블에는 등록되지 않습니다.

내가 누락 된 부분이 있습니까?

+0

능동태 관리자에게 익숙하지 않습니다. 하지만 난 당신이 원하는 것 같아 http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html – DickieBoy

+0

@DickieBoy 내 accept._nested_attributes_for에 추가하려고 : album_videos, allow_destroy : true' 내 album.rb하지만 수정되지 않습니다 it – Julien

+0

당신이 필요로하는 것보다 조금 더 필요합니다. 예를 들어,'fields_for'는': album_videos'이어야합니다. 아마도 이것이 당신이 필요로하는 것 이상일 것입니다 : http://railscasts.com/episodes/17-habtm-checkboxes – DickieBoy

답변

0

해결책을 찾았습니다. 당신은 permit_params에

video_ids: [] 

을 추가해야합니다. 광산은 지금 다음과 같이 보입니다.

permit_params :titre, :description, video_ids: [] 
관련 문제