Może brakuje mi czegoś fundamentalnego, ale nie mogę sprawić, że ActiveAdmin będzie pracował z sortowalną, mającą wiele relacji relacją, z możliwością tworzenia nowych rekordów.ActiveAdmin/Formtastic sortable has_many through relationship
więc podane następujące modele
class User < ActiveRecord::Base
has_many :user_videos
has_many :videos, through: :user_videos
accepts_nested_attributes_for :user_videos
accepts_nested_attributes_for :videos
...
end
class UserVideo < ActiveRecord::Base
belongs_to :user
belongs_to :video
accepts_nested_attributes_for :video
end
class Video < ActiveRecord::Base
has_many :user_videos
has_many :users, through: :user_videos
...
end
(przyznaję Rzucam accepts_nested_attributes_for
wokół nieco w nadziei, że coś może działać)
i aktywna setup Admin coś takiego (oczywiście WIP):
f.inputs "User" do
f.has_many :user_videos, heading: 'Videos', sortable: :order, allow_destroy: true, new_record: 'New Record' do |v|
v.inputs for: :video do |video|
video.input :video_url
end
end
f.has_many :videos, heading: 'Videos', new_record: 'New Video' do |v|
v.input :video_url
end
end
f.actions
pierwszy has_many
sprawie stowarzyszenia :user_videos
nie wydaje się do renderowania żadnych nakładów. Jeśli są tam zapisy, widzę, że video.input :video_url
faktycznie zwraca znacznik li
z label
i input
, jednak nic nie zostanie wyrenderowane na stronie. W przypadku nowych rekordów cały bit v.inputs
nie jest uruchamiany (czy muszę najpierw utworzyć rekordy podrzędne?).
Drugi będzie działał w taki sposób, że będziesz mógł dodawać rekordy i aktualizować istniejące rekordy, jednak nie da się sortować, ponieważ kolumna order
jest w modelu UserVideos
. Włączam to bardziej jako ilustrację niż cokolwiek innego.
Jeśli ktoś ma jakieś wskazówki na ten temat, będą najbardziej cenione. :)