Для первой части (ограничение атрибутов в хэше):
@models.map {|model| model.attributes.slice(:id, :name)}
Для объединения нескольких атрибутов в новый атрибут самым чистым способом обычно является метод доступа:
class User < ActiveRecord::Base
def name
"#{first_name} #{last_name}"
end
end
Затем создайте хеш вручную во время итерации:
@models.map {|model| {:id => model.id, :name => model.name}}
Если вы используете более одного атрибута из хеша атрибутов, вы можете использовать слияние:
@models.map do |model|
model.attributes.slice(:id, :first_name, :last_name).merge(:name => model.name)
end