Dostosowuję Rails Admin: https://github.com/sferik/rails_admin, muszę wyłączyć/ukryć opcję "Dodaj nowy" dla niektórych modeli.Jak się ukryć Dodaj nową opcję w Railsie Admin
Każda pomoc będzie zaoszczędzić dużo czasu dla mnie. Z góry dziękuję
Dostosowuję Rails Admin: https://github.com/sferik/rails_admin, muszę wyłączyć/ukryć opcję "Dodaj nowy" dla niektórych modeli.Jak się ukryć Dodaj nową opcję w Railsie Admin
Każda pomoc będzie zaoszczędzić dużo czasu dla mnie. Z góry dziękuję
Odpowiedź brzmi: configuration documentation for actions. Domyślnie wszystkie działania są możliwe, w tym new
. Aby dostosować możliwe działania, w config.actions
w config/initilizers/rails_admin.rb
, wyświetl wszystkie działania, które chcesz obsłużyć, pomijając te, których nie chcesz wspierać. Na przykład, oto blok konfiguracyjny, który pozwala wszystkim działań domyślnych wyjątkiem new
:
# config/initilizers/rails_admin.rb
RailsAdmin.config do |config|
config.actions do
# root actions
dashboard
# collection actions
index
# `new` is NOT allowed
export
history_index
bulk_delete
# member actions
show
edit
delete
history_show
show_in_app
end
end
Wdrożono ją Cancan. Możesz odnieść się do powyższej odpowiedzi, aby zrobić to w sposób administracyjny rails.
Ta opcja jest wybrana jako odpowiedź, ale nie jest prawdą. Zobacz moją odpowiedź powyżej. – RubeOnRails
używam następujących aby to osiągnąć na konkretnym modelu. Mamy nadzieję, że pomoże to:
config.actions do
new do
except ['Some Model']
end
end
działało idealnie, dzięki! – StarWars
cześć, ale jeśli w adresie URL dodaję akcję, pozwala to na dostęp. Przykład 'http: // localhost: 3000/dashboard/user/new':/ – kalelc
@@@@@@@@@@@@@@@@@@@@@@@@@@ z powyższej rails_admin DSL usunie tylko przyciski od administratora. Dopóki trasy nadal istnieją dla tego działania, będziesz mógł wykonać to działanie. –
Witaj, Rory, dziękuję za szybką odpowiedź. Ponieważ był w inicjalizatorach stosowany do wszystkich modeli. Ukrywa wszystkie modele nowej akcji, ale chcę, aby ukryła nowe działanie w określonym modelu. – Senthil
W takim przypadku obawiam się, że nie wiem, jak to zrobić. Może jakaś inna część dokumentacji [RailsAdmin] (https://github.com/sferik/rails_admin/wiki) wyjaśnia, w jaki sposób. Może trzeba spojrzeć na [kod źródłowy] (https://github.com/sferik/rails_admin), aby zobaczyć, jak to zrobić - [ta część] (https://github.com/sferik/rails_admin/blob/ master/app/controllers/rails_admin/main_controller.rb # L15-L26) mogą być istotne. A może RailsAdmin nie obsługuje tej funkcji. –
Jeśli to konieczne, może istnieć jakiś hack, który pozwala uruchamiać inicjator wiele razy, umożliwiając wyłączenie akcji 'new' podczas robienia czegokolwiek z tym modelem i ponowne włączanie go podczas uzyskiwania dostępu do dowolnego innego modelu. –