2017-08-20 1 views
0

Ich bin neu zu Rubin auf Schienen und arbeitet an einem Projekt mit Rubin auf Schienen 4. Version. Gerade jetzt änderte ich die Ansicht der Bestellung in Active Admin, aber ich bekomme Fehler.Anpassen "Ansicht" Aktion in ActiveAdmin

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 

Mein Ziel ist es zugeordnet ist, um Benutzer-Details wie Adresse, Name usw.

Order-Tabelle besteht aus

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

Benutzertabelle zu zeigen, besteht aus

- id 
- first_name 
- last_name 
- address 
- membership_id 

Antwort

0

Ich gehe davon aus, dass Sie die Beziehung zwischen der Klasse 'Bestellung' und der Klasse 'Benutzer' in ihren jeweiligen Modellen festgelegt haben. (. Belongs_to und has_many Methoden Wenn Sie weitere Hilfe zu diesem Thema benötigen Sie mich bitte.) Dann Sie diese Beziehung auch in Activeadmin erklären müssen wenn Sie die Klassen registrieren, so versuchen, diese:

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` 
Verwandte Themen