@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 то все ок.

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

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

Войти через центр авторизации
Похожие вопросы