如何在 ruby​​ on Rails 4 的模型中包含模块方法?

The*_*Joe 3 module include ruby-on-rails-4

再会,

我一直在使用《Agile Web Development with Ruby on Rails 4》一书,并且一直在尝试使用目录中的模型模块:app/models/concerns/MyModule.rb

我找到了一些有关如何使用 /lib 文件夹和其他一些方法对以前版本的 Rails 执行此操作的文档,但我需要一个简单的方法来调用模型中的模块。

   Module MyModule
   extends ...

   #

   def some_method_in_MyModule
   end

   end
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这个:

应用程序/模型/users.eb

   Class ...

   include MyModule

   a = some_method_in_MyModule

   #

   end
Run Code Online (Sandbox Code Playgroud)

但rails一直说这是不正确的。

如何在 ruby​​ on Rails 4 的模型中包含模块方法?

The*_*Joe 5

在以前版本的 Rails 中,我们需要将文件保存在 /lib 文件夹中,因为在 Rails 4 中我们有了新的文件夹 app/models/concerns,我们可以直接从模型中的模块调用该方法,而无需任何帮助程序。例如:

应用程序/模型/关注/MyModule.rb

    Module MyModule

     extends .. # 

      def some_method_in_my_module
      end

    end
Run Code Online (Sandbox Code Playgroud)

在我们的模型中,我们将其称为:

    class ...

      #

      @usuario = MyModule.some_method_in_my_module

      #

    end
Run Code Online (Sandbox Code Playgroud)