我正在构建一个日常交易 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's Deals 的创建表单中,我以管理员身份输入该交易与哪个品牌相关联:
管理员/交易.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
效果很好,我可以创建特定品牌的交易。但我无法在我的 Deals iun Active Admin'x index 列表中显示品牌名称:
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
...不起作用。
我怎样才能做到这一点 ?
我尝试了所有方法,但我基本上不知道如何获取品牌名称,因为它与交易表中的品牌 ID 匹配。
任何帮助表示赞赏。
更新 我得到的错误是它不理解函数 .name: unknown method 'name'