Tôi có một hộp chọn nhiều cho một liên kết has_many. Các tham số được đưa ra là:Cấp phép một mảng ID với đá quý Pundit
foo_ids: ["1", "2", "3"]
Sử dụng thông số mạnh, tôi không cho phép thuộc tính này vì vậy mọi người không thể đặt bất kỳ thứ gì mình muốn vào đó.
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
Cách tiếp cận này sẽ buộc tôi phải tìm tất cả các sở thích, lặp lại chúng và ủy quyền từng cá nhân. Có cách nào dễ dàng hơn để quản lý ủy quyền has_many, tốt nhất là với đá quý Pundit?
Xin chào Logan, tôi là một trong những người bảo trì của Pundit và muốn tìm hiểu về trường hợp sử dụng của bạn. Nó chỉ đơn giản là cho phép tất cả các hồ sơ trong bộ sưu tập, hoặc là kiểm tra bổ sung có liên quan nào đó? Thông tin đầu vào của bạn có thể giúp câu hỏi của bạn được giải quyết một cách độc đáo trong bản phát hành trong tương lai và cũng giúp người khác. Tôi rất vui nếu bạn có thể để lại một bình luận [ở đây] (https://github.com/elabs/pundit/issues/60). Cảm ơn trước! –
Để lưu tất cả mọi người đọc qua toàn bộ chuỗi vấn đề trên Github. Vấn đề này đã đóng, về cơ bản nói rằng nó có thể được xử lý bằng cách mở rộng Pundit hoặc thay đổi cách bạn đi về điều này. –