@nluparev

Почему не могу обращаться к private методу из того же объекта?

class SayController < ApplicationController
  def hello
    @message = { message: 'Hello', payload: self.payload }
    render json: @message
  end

  private
    def payload
      { size: 12, file_type: 'png', name: 'photo!' }
    end
end


Если я пробую обратиться к методу payload то получаю ошибку что не могу обратиться к такому методу. Если убераю private то все ок.

Почему я не могу это сделать, я ведь обращась из того же объекта?
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
self.payload замените на payload.
Объекту запрещено вызывать приватные методы.
Только класс это может делать внутри себя.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
iGooods.ru Санкт-Петербург
от 120 000 до 180 000 ₽
Frogogo Москва
от 100 000 ₽
28 февр. 2020, в 19:27
40000 руб./за проект
28 февр. 2020, в 19:16
25000 руб./за проект
28 февр. 2020, в 19:15
3000 руб./за проект