stworzyłem coś takiego https://github.com/hubertlepicki/filtered_attributes i potrzebuję opinii czy to w ogóle ma sens. Pomysł jest taki aby filtrować parametry przekazywane do metod typu mass-assignment, na poziomie kontrolerów a nie modeli.
Moje rozumowanie jest takie, że attr_accessible jest dość powszechnie używane źle, bądź nie używane wcale. Przeniesienie logiki filtrowania parametrów do modelu i stworzenie ładnych helperów typu user_attributes zamiast params[:user] mogłyby tą sprawę poprawić. Co myślicie?
Nie pamiętam gdzie, ale swego czasu wylewałem żale, że railsy źle do tego podchodzą i robią to na poziomie modelu a nie kontrolera. Mogę zatem powiedzieć, że fajnie iż znalazł się ktoś kto zrobił to jak należy :).
Tak to było zrobione w merbie i mi osobiście też się takie podejście podoba, chociaż w 3.1 problem jest już mniejszy, bo można stosować role przy zapisywaniu do modelu. Yehuda kiedyś mówił, że próbował kiedyś przeforsować, żeby coś takiego było wspierane w samych railsach, ale chyba nie przekonał reszty core teamu.
Całkiem mi się podoba, koncepcja jest rzeczywiście podobna. Z tym że wolałbym nie modyfikować samej kolekcji params, to po pierwsze, po drugie filtrowanie parametrów prawie zawsze będzie odbywać się w odniesieniu do zestawu atrybutów danego zasobu, np. params[:post], params[:user]. Składnia używana w Merbie pozwala na filtrowanie dowolnych atrybutów.
Oba rozwiązania mają słaby punkt, pod postacią braku wsparcia dla ról, ale myślę że to by się dało też rozwiązać.