Задать вопрос
@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 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Thinknetica
    Профессиональная разработка на Ruby on Rails
    9 месяцев
    Далее
  • Хороший программист
    Интенсив по Ruby on Rails
    5 месяцев
    Далее
  • Thinknetica
    Оптимизация Ruby/Rails-приложений
    9 недель
    Далее
Решения вопроса 1
self.payload замените на payload.
Объекту запрещено вызывать приватные методы.
Только класс это может делать внутри себя.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы