Допустим, у меня есть модель с именем User. Как добавить виртуальные атрибуты к окончательному результату сгенерированного запроса?Как добавить атрибуты к результату активной записи в Rails 4?
class User < ActiveRecord::Base
ATTRIBUTES = %w[name email balance]
scope :main_selection, -> { select('name,email,total_bought, total_deposit') }
def balance
(total_deposit - total_bought).round
end
end
и внутри моего контроллера у меня есть
@user = User.main_selection
@attributes = User::ATTRIBUTES
внутри вида, я хотел бы показать его в таблице
<table>
<thead>
<tr>
<% @attributes.each do |a| %>
<th><%= a %><th>
<% end %>
</tr>
</thead>
<tbody>
<% @user.each do |u| %>
<tr>
<% @attributes.each do |a| %>
<td><%= u[a] %><td>
<% end %>
</tr>
<% end %>
</tbody>
<table>
Единственная проблема заключается в том, что мне нужно, чтобы добавить баланс атрибут в сгенерированный результат, так что цикл с u [a] может работать.
Следует отметить, что баланс можно вызывать с помощью @ user.first.balance, но внутри цикла не работает, и вместо него отображается значение nil.
Спасибо, сейчас работает. Но есть ли другой способ добавить баланс в атрибуты результата? –