2013-12-11 3 views
0

Я могу смотреть на все это неправильно, но в пределах моего представления (с помощью Active Admin) Я хотел бы объединить 3 атрибута в один, поэтому в моем случае имя, имя и фамилия в одной строке, с каждой частью имени, разделенных пробеломСоздайте помощник, чтобы объединить атрибуты модели

до сих пор я пришел с этим

column "Name" do |member| 
    member.forename + member.middlename + member.surname 
end 

Я также думал, что я мог отображения результатов

column "Name" do |member| 
    member.map {|m| m.forename, m.middlename, m.surname } 
end 

Но что выдает ошибку

Так помощник будет выглядеть примерно так (насколько я могу видеть)

def fullname(member) 
    member.forename + member.middlename + member.surname 
end 

Я думаю, им путая это где-то вдоль линии, как у меня есть 3 атрибуты Мне нужно передать через помощника, не так ли?

Любая помощь по оценке

ответ

2

Две вещи. Во-первых, почему бы вам не поместить это в модель участника. Во-вторых, вы должны использовать интерполяцию по конкатенации.

def fullname 
    "#{self.forename} #{self.middlename} #{self.surname}" 
end 
+0

спасибо за советы, не думал об этом правильно – Richlewis

1

Какие три атрибута? У вас есть один член, который имеет три атрибута.

Это сказало: ActiveAdmin provides integration with Draper. Вместо этого используйте декоратор, поставьте fullname в декораторе, затем просто укажите fullname, как будто это свойство модели.

Вы также можете поместить его в модель, если на самом деле имеет смысл это сделать.

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