[英]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.