Ruby on rails 如何从同级表中添加活动的管理索引列?
在my Customers_Rewards active admin中,我当前显示Customer_Rewards and Customer data表中的列,但我还希望显示Order data表中的列(例如store_id)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
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)