#ruby-on-rails #ruby-on-rails-4
#ruby-на-рельсах #ruby-on-rails-4
Вопрос:
У меня проблема с методом update
. Когда я вызываю его в контроллере, я терплю неудачу NoMethodError - undefined method 'update' for InlineTextStorage:Class
, в чем может быть причина?
class StaticAreasController < ApplicationController
def update
@static_area = InlineTextStorage.update("key", "value")
end
end
class InlineTextStorage
def update(key, value)
inline_text = StaticArea.find_by_key!(key)
inline_text.text = value
@@texts[key] = value
update_cache
end
end
Комментарии:
1. Попробуйте изменить это
def update(key, value)
наdef self.update(key, value)
в вашейInlineTextStorage
модели
Ответ №1:
Вы пытаетесь вызвать метод экземпляра как метод класса. Вы должны добавить self.
букву «а» в название.
class InlineTextStorage
def self.update(key, value)
inline_text = StaticArea.find_by_key!(key)
Таким образом, метод доступен из класса.