attr_accessor возвращает nil в модели, в то время как возвращает правильное значение в контроллере - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть модель Assignment с attr_accessor :members

Когда я отправляю свой запрос ajax, я вижу в терминале передаваемые параметры, и мой attr_accessor хорошо установлен "members"=>["", "12", "13"]

Вот краткий обзор:

Parameters: {"utf8"=>"✓", 
 "authenticity_token"=>"YfDZ8VHrrriXLgf2RRHdZtzE8X0V5NFrEOBKZmoCw5mbvqbNKBsUVdBeJSY6HCj4YqcTQi2iiYZFhXx3SYFngw==", 
"assignment"=>{"members"=>["", "12", "13"], ....}

Однако в моей модели Assignment значение accessor членов возвращает всегда nil:

before_validation :check_members

def check_members
    throw self.members # this throws: UncaughtThrowError (uncaught throw nil)
end

Почему я получаю nil для членов вместо массива значений

1 Ответ

0 голосов
/ 10 февраля 2019

Похоже, мне нужно было указать "пустой массив" для сильных параметров. То, что у меня было раньше, это:

params.require(:assignment).permit(:title, :members)

Я превратил его в

params.require(:assignment).permit(:title, :members => [])

Теперьон работает:)

Связанный источник: как разрешить массив с сильными параметрами

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...