【发布时间】:2016-09-23 13:33:04
【问题描述】:
我正在 Rails 5 上创建一个 gem。
假设我有 SomeModel 和 hello 方法,我在 myengine 中使用:
# app/models/myengine/someModel.rb
module Myengine
class SomeModel < ApplicationRecord
def self.hello
puts 'hello world'
end
end
end
我想从默认应用程序中删除 hello 方法并将其存储到 gem 中,这样我可以仅在需要时将其插入。
我不知道要写什么来扩展模型,也不知道在哪里放置该文件。
我试图通过Rails guidelines,但它们太复杂了!几次尝试后我迷路了。 我不需要单表继承,我需要扩展那个特定的模型。
已经尝试过this answer,这似乎不太正确,而this one,不幸的是并没有说太多。
有什么想法吗?
【问题讨论】:
-
也许您应该只使用
hello方法编写模块并在应用程序中扩展模型而不是 gem 本身? -
“使用
hello编写模块”和“在应用程序中扩展模型而不是gem 本身”是什么意思?我需要一个 gem,因为这是我正在做的更广泛的事情的一部分,必须在多个 Rails 应用程序上轻松复制。 -
嘿@Aleksey,我想我成功了。
标签: ruby rubygems ruby-on-rails-5