簡體   English   中英

在ActiveAdmin中自定義“查看”操作

[英]Customize “view” action in ActiveAdmin

我是Rails上的紅寶石新手,並且正在使用Rails 4th版本上的Ruby進行項目。 現在,我正在活動管理員中更改訂單視圖,但出現錯誤。

ActiveAdmin.register Order do
    permit_params :id, :order_completed, :approved

    # changing the visual of view action, so admin user can able to see complete order details
    show do |order|
        attributes_table do
            row :id # Order ID
            row 'Name' params[:user].first_name # its not working, not showing the user first_name assiated with order id 
            # It should be user name. although user first_name is in users table and User model is availble.
            row 'Adress' params[:user].address # its not working, not showing the user address assiated with order id
            # It should be user address. although user first_name is in users table and User model is availble.
        end
    end

    controller do
        def show 
            order_id = Order.find(params[:id]).user_id
            params[:user] = User.find(order_id)
            show!
        end
    end
end

我的目標是顯示與訂單相關的用戶詳細信息,例如地址,姓名等。

訂單表包括

 - id
 - user_id
 - order_completed (boolean)
 - approved
 - order_status (string) [in process, done]

用戶表包括

 - id
 - first_name
 - last_name
 - address
 - membership_id

我假設您已經在各自的模型中建立了“訂單”類和“用戶”類之間的關系。 (belongs_to和has_many方法。如果您需要更多幫助,請告訴我。)然后,在注冊類時也必須在Activeadmin中聲明該關系 ,因此請嘗試以下操作:

    app/admin/order.rb:
    ActiveAdmin.register Order do
        permit_params :id, :order_completed, :approved
        belongs_to :user # Declaring that order belongs to user here

        # changing the visual of view action, so admin user can able to see complete order details
        show do |order|
            attributes_table do
                row :id # Order ID
                row 'Name' do
                    @order.user.first_name
                end
                row 'Address' do 
                    @order.user.address
                end
            end
        end

        controller do
            def show 
                @order = Order.find(params[:id])
                show!
            end
        end
    end`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM