Не удается добавить метод экземпляра в модель Ruby-on-Rails - PullRequest
2 голосов
/ 19 октября 2019

Я пытаюсь добавить новый метод экземпляра к одной из моих моделей. Вот модель:

# app/models/server.rb
class Server < ActiveRecord::Base

  def self.zzz()
  end

end

Herre является контроллером:

class ServersController < ApplicationController

  def new
    @server = Server.new
    @server.zzz
  end

end

Когда я вызываю метод new, я получаю эту ошибку:

undefined method `zzz' for #<Server:0x0055f64a3c4cb8>

Почему я не могу добавить дополнительный метод экземпляра в класс Server таким образом? Я использую Rails 4.2 в системе растяжения Debian.

1 Ответ

1 голос
/ 19 октября 2019

Я пытаюсь добавить новый метод экземпляра в одну из моих моделей.

Вместо этого вы добавили метод класса, и вы не можете вызвать метод класса (объявлен с помощью self перед именем) в экземпляре. Вы можете либо вызвать метод #zzz в классе напрямую, например:

Server.zzz

, либо переопределить zzz, чтобы он стал методом экземпляра:

def zzz
end

, чтобы иметь возможность вызыватьэто на @server.

...