在我的Customers_Rewards活动管理员中,我当前显示Customer_Rewards和Customer数据表中的列,但我还想显示Order数据表中的列(例如store_id)。
ActiveAdmin.register CustomerReward do
menu :parent=>"Customers", :priority=>10, :label=>"Activated Rewards"
index do
selectable_column
column("Customer ID"){|u| u.customer.id }
column("Store ID"){|u| u.order.store_id } #DOES NOT WORK
column("First name"){|u| u.customer.first_name }
column("Last name"){|u| u.customer.last_name }
column("Email"){|u| u.customer.email }
column :reward
column :points_redeemed
column :expires_at
column :redeemed_at
bool_column :is_active
actions
end
_____________________________________________________
class CustomerReward < ActiveRecord::Base
belongs_to :customer
end
class Customer < ActiveRecord::Base
has_many :addresses, :order => 'is_active desc, is_default desc'
has_many :customer_rewards
has_many :orders
end
class Order < ActiveRecord::Base
belongs_to :customer
end
I get an error message of:
undefined method `order' for #<Customer:0x007fb1dc2e3160>
答案 0 :(得分:0)
u.order.store_id
表示你告诉Rails从order
表和orders
表之间的关联中获取customer_rewards
,但是没有这样的关系。
你可以做的是打电话
u.customer.orders
将返回与CustomerReward
对象(u
)相关的客户的所有订单。
我不知道你会得到具体的store_id
,因为
u.customer.orders
将返回一个集合,因此会有一个store_id
的集合 - 您可以通过调用
u.customer.orders.pluck(:store_id) # same as map(&:store_id)