2013-11-23 3 views
1

У меня есть эта модель «Расписание» с атрибутами :id, :augurid, #and so on. И у меня есть еще одна модель «Augur» с атрибутами :id, :name, :email #and so on.Rails_Admin поиск в списке

Теперь я хочу, чтобы отобразить augur.name на странице Schedule в Rails_Admin, и мой код, как следующее:

config.model "Schedule" do 
    list do 
     fields :id, :weekdays, :occupied, :starting, :duration 
     field :augur do 
     pretty_value do 
      augur = Augur.find(:augurid) 
      augur.name 
     end 
     end 
    end 
    edit do 
     fields :id, :augurid, :weekdays, :occupied, :starting, :duration 
    end 
    show do 
    end 
    end 

Но этот код не работает, я не знаю, почему, так как я новый для рельсов, и я проверил документацию rails_admin и, похоже, нет решения этой проблемы.

Может ли кто-нибудь мне помочь?

И я думаю, что проблема вокруг авгура = Augur.find (: augurid), , потому что если я изменю: augurid до 5, он будет отображать право предвещают имя. Но как это сделать для каждой записи в расписании?

ответ

1

Как @ JKen13579 упомянутый, :object_label_method :name может сделать это за вас. Но если вы действительно хотите получить доступ к «текущему объекту» в вашем rails_admin обратных вызовов, есть способ:

list do 
    field :augur do 
     pretty_value do 
      bindings[:object].name 
     end 
    end 
end 

Это покажет имя авгура и влияет только на виде списка.

1

Вы просто должны быть в состоянии сделать добавить object_label_method :name конфигурации rails_admin для модели Авгур:

config.model "Augur" do 
    object_label_method :name 

    ... 

end 

Это то, что вы ищете?

Смежные вопросы