nbekseitov
@nbekseitov
Ruby developer

Как правильно хранить данные в массиве Postgresql?

Привет всем. Есть модель Students и поле balance, куда при помощи всплывающего окно я добавляю к счету студента деньги. Мне нужно создать страницу "платежи", где будет хранится вся информация о платежах текущего студента. Страницу я создал и попробовал хранить информацию в массиве payment. Проблема в том что в массив добавляется только 1 последнее значение. БД Postgresql

Controller
def payment
@student = Student.find(params[:id])
@history = @student.add_payment
end

Model
attr_accessor :money

 def add_money
self.balance += @money.to_i
self.money_new += @money.to_i
end 

def add_payment
  self.payment = []
  self.payment.push(self.money_new)
end


View
<%- model_class = Student -%>
<div class="page-header">
<h3>История платежей</h3>
</div>
<table class="table table-striped">
<thead>
<tr>
<th>Сумма</th>
</tr>
</thead>
<tbody>
  <% @history.each do |i| %>
    <tr>
      <td><%= i %></td>
    </tr>
   <% end %>
</tbody>
</table>
  • Вопрос задан
  • 2966 просмотров
Решения вопроса 1
viktorvsk
@viktorvsk
Не понимаю, что вы делаете, но проблема
Проблема в том что в массив добавляется только 1 последнее значение

при вызове метода
@history = @student.add_payment
кроется здесь:
self.payment = []

То есть, вы сначала создаете новый массив, а потом добавляете туда что-то. Естественно, это что-то будет там в гордом одиночестве.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы