Попытка уничтожить модель, указав неверное количество аргументов (0 для 1) - PullRequest
2 голосов
/ 04 марта 2012

Я не уверен, почему я получаю эту ошибку:

wrong number of arguments (0 for 1)

app/models/user.rb:38:in `sign_out_by_guid'
app/helpers/user_helper.rb:11:in `sign_out'
app/controllers/users_controller.rb:18:in `destroy'

Мой код:

def self.sign_out_by_guid(guid)
    puts 'currently in sign_out_by_guid' + guid
    u = User.where("guid = ?", guid) 
    puts u.inspect
    puts 'before destroy'
    u.destroy
    puts 'called destroy'
  end

Я могу видеть все ожидаемые результаты путов для последнего "вызванного"destroy "

Так что это наверняка означает, что вызов u.destroy является проблемой.

Если я пытаюсь получить запись в rails console, и вызывать для пользователя команду destroy, она работает нормально.

Что бы это могло быть?

Ответы [ 2 ]

13 голосов
/ 04 марта 2012

u - это набор User с, но destroy необходимо вызывать для одного пользователя или для отношения с аргументом, обозначающим идентификатор из User.Вы можете сделать:

u = User.where("guid = ?", guid).first

или

u = User.find_by_guid(guid)
0 голосов
/ 13 апреля 2015

проверьте user.rb.убедитесь, что ваши параметры

dependent: :destroy

не

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