Ruby on rails 如何从同级表中添加活动的管理索引列?

Ruby on rails 如何从同级表中添加活动的管理索引列?,ruby-on-rails,ruby-on-rails-3,activeadmin,Ruby On Rails,Ruby On Rails 3,Activeadmin,在my Customers_Rewards active admin中,我当前显示Customer_Rewards and Customer data表中的列,但我还希望显示Order data表中的列(例如store_id) ActiveAdmin.register CustomerReward do menu :parent=>"Customers", :priority=>10, :label=>"Activated Rewards" index do

在my Customers_Rewards active admin中,我当前显示Customer_Rewards and Customer data表中的列,但我还希望显示Order data表中的列(例如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
ActiveAdmin.register customerward do
菜单:家长=>“客户”,:优先级=>10,:标签=>“激活奖励”
索引do
可选列
列(“客户ID”){| u | u.Customer.ID}
列(“存储ID”){| u | u.order.Store_ID}#不工作
列(“名字”){| u | u.customer.First_name}
列(“姓氏”){| u | u.customer.Last_name}
列(“电子邮件”){| u | u.customer.Email}
专栏:奖励
列:兑换的积分
列:在
第列:赎回日
bool_列:是否处于活动状态
行动
结束
_____________________________________________________
类customereward“是活动描述,是默认描述”
有很多:顾客奖励
有很多订单吗
结束
类顺序

我收到以下错误消息:
未定义的方法“order”#

u.order.store\u id
表示您告诉Rails从
订单
表和
客户奖励
表之间的关联中获取
订单
,但没有这种关系

不过你能做的就是打电话

u.customer.orders
它将返回与
customerward
对象(
u
)相关的客户的所有订单

我不知道基于什么,你会拿到具体的
store\u id
,因为

u.customer.orders
将返回一个集合,因此将有一个
store\u id
s的集合-您可以通过调用

u.customer.orders.pluck(:store_id) # same as map(&:store_id)

谢谢你的回复!它目前可以工作,但它列出了每个用户的每个店铺ID:| CustomerID |店铺ID |名字|姓氏|电子邮件|奖励| 82910(2,2,10)Amber Rield(a@b.com)5082910(2,2,10)琥珀色瑞尔(a@b.com) 150 82910 2, 2,10安布尔瑞尔(a@b.com)100我如何获得与特定订单关联的特定商店ID,而不是将其全部列出?谢谢again@BrysonWatabu是的,它按预期工作。正如我所说的,我不知道在什么条件下你可以只区分一个需要的
商店id
——但是如果你知道的话,那就去做吧。让我知道,如果我能帮助你进一步,并考虑接受答案,如果它是有帮助的:)是否可以走下的线可能的其他3个表的ID,以便得到一个具体的仓库?活动管理员是否只允许引用它所属的内容以及它“拥有”的内容(has_one/has_many)?活动管理员是否允许复杂的查询或与之关联的任何查询?一种联系能有多深?谢谢@Bryson Watabu AA将允许您在Ruby/Rails中实现几乎所有可能的功能—如果您可以使用Rails做一些事情,那么在AA中也是可能的。因此,如果您想到如何在Rails中访问第三个表
store_id
,那么AA没有任何限制
u.customer.orders.pluck(:store_id) # same as map(&:store_id)