Задать вопрос
@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 то все ок.

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

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

Похожие вопросы
TEYCA Казань
от 150 000 до 240 000 ₽
Netwrk Буэнос-Айрес
от 5 000 до 7 500 $
от 6 000 до 8 000 $