Rails: How to make an action in ActiveAdmin.register_page
I really struggled with ActiveAdmin's register_page (writing not associated with a model).
point
-
Add an action with
page_action
.page_action
you do not writepage_action
, even routing will not be added! (But why, only the index action does not have to be defined from the beginning) -
The part corresponding to
index do
ActiveAdmin.register iscontent do
in register_profile! (It is hard to understand) -
For example, if you write
@text = 'ABCD'
inindex do
, you can not use it incontent do
! It is an ordinary variable called text. -
Layout changes are written directly under
controller do
! Do not write indef index
or something. -
def index
andcontent do
correspond. So, for example, what corresponds todef edit
? Maybe page_action: edit do. (Unsettled)ActiveAdmin.register_page "AuthorPage" do content do panel 'メニュー' do link_to '新規作成', admin_authorpage_new_path end table_for authors do column "名前", :name column "性別", :gender column ("name_changed"){ |author| author.name_changed } column ("編集"){ |author| link_to('編集する', admin_authorpage_edit_path(id: author.id)) } end end page_action :new, method: :get page_action :create, method: :post page_action :update, method: :post page_action :edit, method: :get do end controller do layout 'active_admin', only: [:edit, :new] def index @authors = Author.all end def new end def create Author.create(params.require(:author).permit(:name, :gender)) flash[:notice] = '作成しました。' redirect_to admin_authorpage_path end def update flash[:notice] = '編集しました。' author = Author.find(params[:author][:id]) author.update(params.require(:author).permit(:name, :gender)) redirect_to admin_authorpage_edit_path(id: params[:author][:id]) end def edit @author = Author.find(params[:id]) end end end
Original by
Rails: ActiveAdmin.register_page でのアクションの作り方とはまりどころ。
About
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2019-04-16
Discussion