无法在关联模型的Active Admin索引属性中显示(belongs_to / has_many) – Rails 3.2
我正在建立一个每日交易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所以这没关系。
在Active Admin的交易’创建表单中,我输入与交易相关联的品牌作为管理员:
管理员/ deal.rb
ActiveAdmin.register Deal do # -- Form ----------------------------------------------------------- form do |f| f.inputs "Brand (ie client)" do f.input :brand_id, :label => "Select a brand:", :as => :select, :collection => Brand.all end
它工作得很好,我可以创建特定品牌的优惠。 但我无法在我的优惠管理列表中显示品牌名称:
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
……不起作用。
我怎样才能做到这一点 ?
我尝试了一切但我基本上不知道如何获取品牌的名称,因为它与Deal的表中的brand_id相匹配。
任何帮助赞赏。
更新我得到的错误是它不懂函数.name:未知方法’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
您的:brand
专栏对我来说是正确的。 如果你在控制台中找到了deal
,如果做deal.brand
和deal.brand.name
会得到什么?
- 如何为ActiveAdmin提供自己的应用程序布局? – Rails新手
- Rails Rake任务删除表并从csv导入
- 保留ActiveAdmin布局的ActiveAdmin自定义视图
- Ruby On Rails Active Admin has_many更改文本以使用不同的列
- 如何在ActiveAdmin中覆盖“after_sign_up_path_for”?
- Active Admin – 根据第一个下拉菜单Ruby on Rails刷新第二个下拉列表
- 是否有更简单的方法使用ActiveAdmin创建/选择相关数据?
- 使用主动管理员cancan进行范围界定
- 如何更改ActiveAdmin显示时间的方式(每次)