Mam wiele pól wyboru dla skojarzenia has_many. Params przyjść jak:Autoryzacja tablicy identyfikatorów z klejnotem Pundit
foo_ids: ["1", "2", "3"]
Używanie silnych parametry, nie pozwalają tego atrybutu, ponieważ chciałbym, aby je autoryzować się więc ludzie nie mogą po prostu umieścić, co chcą w nim.
def update
bar.foos = authorized_foos
bar.update(baz_params)
respond_with bar
end
private
def authorized_foos
foos = Foo.find(params[:baz][:foo_ids])
foos.each do |foo|
authorize foo, :manage?
end
end
Takie podejście zmusi mnie do znalezienia wszystkich foo, przejrzenia ich i autoryzowania każdego z nich osobno. Czy istnieje łatwiejszy sposób zarządzania has_many autoryzacją, najlepiej z klejnotem Pundit?
Witam Logana, jestem jednym z opiekunów Pundit i chciałbym dowiedzieć się o Twoim przypadku użycia. Czy to po prostu autoryzowanie wszystkich rekordów w zbiorze, czy też w jakiś sposób są to dodatkowe kontrole? Twoje dane wejściowe mogą sprawić, że Twoje pytanie będzie dobrze rozwiązane w przyszłej wersji, a także pomóc innym. Byłbym szczęśliwy, gdyby można było zostawić komentarz [tutaj] (https://github.com/elabs/pundit/issues/60). Z góry dziękuję! –
Aby uratować wszystkich przed przeczytaniem całego wątku na Github. Ten problem jest zamknięty, mówiąc w zasadzie, że można go obsłużyć, rozszerzając Pundit lub zmieniając sposób, w jaki to robisz. –