【问题标题】:Undefined module method in model模型中未定义的模块方法
【发布时间】:2020-04-04 12:17:08
【问题描述】:

lib/modules/file_type.rb

module Modules
  module Type
    def friend_name(type:)
      ...
    end
  end
end

app/models/car.rb

class Car < ApplicationRecord
  include Modules::Type

  def self.to_array
  ...
  name = friend_name(type: 'test')
  ...
  end
end

但我收到此错误:

undefined method `friend_name'

我不确定为什么会收到此错误。

谁能帮帮我?

【问题讨论】:

  • friend_name 是Car 类的实例方法,所以Car.new.friend_name(type: 'test') 有效,但Car.friend_name(type: 'test') 无效。
  • 这段代码应该实现什么?

标签: ruby-on-rails ruby module model


【解决方案1】:

如果friend_name 是一个类方法,那么在Car 模型中使用extend 而不是include

extend Modules::Type

更多关于include和extend之间区别的信息可以在这里找到-

What is the difference between include and extend in Ruby?

希望有帮助!

【讨论】:

    猜你喜欢
    • 2013-10-20
    • 1970-01-01
    • 2015-01-22
    • 1970-01-01
    • 2016-11-04
    • 2023-03-17
    • 2018-11-17
    • 1970-01-01
    • 2012-04-14
    相关资源
    最近更新 更多