Обновление информации в хэше, связанном с рельсами ActiveRecord 5 - PullRequest
0 голосов
/ 01 июня 2018

У меня есть два хэша, один из которых называется current_savings, а другой - mambu_repayments

current_savings.select {|s| s[:status] == 'repaid' }

В rails c приведенный выше выводит любые сбережения, когда статус возвращается,

mambu_repayments.last

В рельсах c в вышеприведенной строке будет выведено погашение.Этот хеш имеет ключевой элемент значения "state"=>"PAID"

Я хочу изменить значение этого состояния на ЗАВЕРШЕНО для каждого последнего погашения, где статус current_savings помечен как погашенный.

В моем соответствующем контроллере я пробовал следующее:

 # check saving is not nil and status is :repaid.
    # Retrieve last repayment from @repayments and check if it has status PAID

    if current_savings != nil? && current_savings.status == 'repaid'
      mambu_repayments = current_savings.get_repayments_with_parents.select{|s| s["state"] == 'PAID'}
      mambu_repayments.last = 'COMPLETE'
    end

1 Ответ

0 голосов
/ 01 июня 2018

Пожалуйста, посмотрите на приведенный ниже фрагмент

# check saving is not nil and status is :repaid.

# Retrieve last repayment from @repayments and check if it has status PAID

if current_savings != nil? && current_savings.status == 'repaid'
  mambu_repayments = current_savings.get_repayments_with_parents.select{|s| s["state"] == 'PAID'}
  # If you dont' want to run callbacks and validations
  mambu_repayments.last.update_columns(state: 'COMPLETE') 
  # If you want to run callbacks and validations
  # mambu_repayments.last.update(state: 'COMPLETE') 
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...