0

我有一个用户模型和一个优势模型。一个用户有很多优势,我正在尝试在 Active_Admin 中为优势构建一个管理面板,显示用户的名字和电子邮件。它在开发中完美运行,但是当我推送到 Heroku 时,我收到以下消息:

ActionView::Template::Error (undefined method `first_name' for nil:NilClass):
app/admin/strengths.rb:5:in `block (3 levels) in <top (required)>'

到目前为止,这是我在开发中所拥有的:

app > admin > strengths.rb
ActiveAdmin.register Strength do
  index do
    column "Strength ID", :id
    column "Name" do |i|
        i.user.first_name
    end
    column "Email" do |i|
        i.user.email
    end
    column :producer
    column :versatility
        default_actions
  end
end

任何想法为什么我会在生产中出错但在开发中不会出错?

4

1 回答 1

1

这可能会导致因为您在优势模型中没有记录,

尝试在 first_name 和 last_name 列中添加 if 条件,

column "Name" do |i|
    i.user.first_name if i.user.present? 
end

如果记录不存在,这将避免错误。

于 2013-08-03T07:31:15.197 回答