2013-08-01 2 views
0

У меня есть модель User и модель Strengths. У пользователя есть сильные стороны, и я пытаюсь создать панель администратора в Active_Admin для сильных сторон, которая отображает имя пользователя и адрес электронной почты пользователя. Он отлично работает в разработке, но когда я нажимаю на Heroku, я получаю сообщение:Active_Admin Неопределенный метод Ошибка только в производстве

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 

Любые идеи, почему я получаю сообщение об ошибке в производстве, но не в развитии?

ответ

1

это может привести к becoz и не имеет запись в модели Сильных,

попробуй добавить, если условие в first_name и last_name колонка как,

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

это позволит избежать ошибок, если запись нет.

+0

Большое вам спасибо! Это работало как шарм! – lsco

+0

вы приветствуете .. n спасибо .. :) – bunty

+0

Любые мысли о том, как я хотел бы создать настраиваемый фильтр для этого поля? Я не мог понять это, затем попытался сделать его сортируемым: столбец «Имя»,: sortable =>: first_name do | i | i.user.first_name, если i.user.present? конец Но это снова повторяет ту же ошибку: / – lsco