【发布时间】:2013-10-11 20:23:09
【问题描述】:
我正在构建一个日常交易 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 的创建表单中,我以管理员身份输入该交易与哪个品牌相关联:
admin/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
效果很好,我可以创建特定品牌的交易。但我无法在我的 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
...不起作用。
我该怎么做?
我尝试了所有方法,但我基本上不知道如何获取品牌名称,因为它与交易表中的 brand_id 匹配。
任何帮助表示赞赏。
更新 我得到的错误是它不理解函数 .name: unknown method 'name'
【问题讨论】:
-
究竟是什么“不起作用”?你看到异常了吗?还是什么都没有出现?
-
请注意,如果我使用 auto_link,它虽然可以工作...很奇怪,但我不想使用它,因为我认为它是相当古老的 fahsioned rails
-
@JoshKovach 我已经更新了问题以提出我得到的错误
-
你能粘贴你得到的错误的确切打印输出吗?如果你输入
link_to deal.brand.name, admin_brand_path(deal.brand) unless deal.brand.nil?会发生什么?
标签: ruby-on-rails ruby ruby-on-rails-3 activeadmin