gpt4 book ai didi

ruby-on-rails - 无法在关联模型的事件管理索引属性中显示 (belongs_to/has_many) - Rails 3.2

转载 作者:数据小太阳 更新时间:2023-10-29 08:38:34 24 4
gpt4 key购买 nike

我正在构建一个日常交易 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 的 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

效果很好,我可以与某个品牌进行交易。但我无法在我的交易列表中显示品牌名称 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

...不起作用。

我该怎么做?

我尝试了所有方法,但我基本上不知道如何获取品牌名称,因为它与 Deal 表中的 brand_id 匹配。

感谢任何帮助。

更新我得到的错误是它不理解函数 .name: unknown method 'name'

最佳答案

您需要处理 deal.brandnil 的情况。

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 - 无法在关联模型的事件管理索引属性中显示 (belongs_to/has_many) - Rails 3.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19326625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com