has_many通过表单不在连接表中注册

时间:2014-06-23 11:57:02

标签: ruby-on-rails activerecord ruby-on-rails-4 activeadmin

我在带有activeadmin gem的rails 4应用程序上的ruby有问题 我已经生成了多个运行良好的资源但是我遇到了一个有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表中没有任何内容。

我缺少什么?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。你这个juste必须添加

video_ids: []

到你的permit_params。 我现在看起来像这样:

permit_params :titre, :description, video_ids: []