我正在构建一个每日交易 Rails 应用程序来学习 RoR。
过去几个小时我遇到了一个问题:我无法在事件管理中获取其他关联模型的模型属性。让我向您展示具体的问题:
我有两个模型:品牌(即交易的品牌)和交易。一笔交易属于一个品牌,但一个品牌可以有很多笔交易。
models/deal.rb 是这样的:
class Deal < ActiveRecord::Base
belongs_to :brand
我们有 models/brand.rb:
class Brand < ActiveRecord::Base
has_many :deals
attr_accessible :name
我在迁移中执行了 t.belongs_to,所以这是可以的。
在事件管理员的交易创建表单中,我以管理员身份输入该交易与哪个品牌关联:
管理/deal.rb
ActiveAdmin.register Deal do
# -- Form -----------------------------------------------------------
form do |f|
f.inputs "Brand (i.e. client)" do
f.input :brand_id, :label => "Select a brand:", :as => :select, :collection => Brand.all
end
它效果很好,我可以与某个品牌创建交易。但我无法在我的交易列表中显示品牌名称 iun Active Admin'x 索引:
ActiveAdmin.register Deal do
index do
selectable_column
# id_column
column :title
column :deal_amount
column :brand do |deal|
link_to deal.brand.name, admin_brand_path(deal.brand)
end
...不起作用。
我怎样才能做到这一点?
我尝试了一切,但我基本上不知道如何获取品牌名称,因为它与交易表中的brand_id相匹配。
感谢任何帮助。
更新 我收到的错误是它不理解函数.name:未知方法“名称”
最佳答案
您需要处理 deal.brand
为 nil
的情况。
ActiveAdmin.register Deal do
index do
selectable_column
# id_column
column :title
column :deal_amount
column :brand do |deal|
if deal.brand.present?
link_to deal.brand.name, admin_brand_path(deal.brand)
else
status_tag('Empty')
end
end
end
end
关于ruby-on-rails - 无法在关联模型的 Active Admin 索引属性中显示(belongs_to/has_many) - Rails 3.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19326625/