Установка нескольких атрибутов модели одновременно через цикл - PullRequest
0 голосов
/ 22 октября 2018

Я использую виртуальные атрибуты для объединения и формирования адреса перед тем, как сохранить пользователя.Поэтому, когда они нажимают кнопку «Изменить пользователя», я хотел бы снова заполнить поля в форме.Каждый раз, когда я пытаюсь назначить их, они возвращаются, ноль?

Это то, что я вызываю от контроллера регистрации devise. Edit_action edit:

def test
 resource.populate_address_attributes
end

и вот метод, с которым я пытаюсь работать:я получаю это:

=> [nil, nil, nil, nil, nil]

может быть, я пытаюсь сделать это сложным?

1 Ответ

0 голосов
/ 22 октября 2018

Когда вы передаете [self.number, self.street_name] и т. Д., Вы передаете значение этих атрибутов (которые равны нулю и, следовательно, неизменны).

Попробуйте это

def populate_address_attributes
  if address == nil || address == ""
    return false
  else
    attributes = address.split(",")
    [:number, :street_name, :area, :postcode, :state].each_with_index do |field, index|
      self.public_send("#{field}=", attributes[index])
    end
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...