ruby 在Rails中把代码段放在哪里?

cwxwcias  于 2023-10-17  发布在  Ruby
关注(0)|答案(3)|浏览(122)

我有这个代码片段,它可以为POST生成签名。细节并不重要,但我想知道的是:由于它不是一个与模型相关代码块,因此它确实可以在任何地方使用:在控制器中,在模型中,在视图助手中;甚至在视图中。所以我不确定在哪里,更大的问题是,一旦我把它放在某个位置,如何激活它的使用。
这就是那些“要求”语句的意义吗?您可以通过当前文件中的“require”语句获得某些功能?
为了让我们有一个例子来讨论,比如说,我有一小段代码可以进行立方运算:

def cube_it(num)
  num**3
end

我知道我将在应用程序的各个地方使用它,那么我应该把它放在哪里呢?当我真的需要使用它的时候,我怎么才能“召唤”它呢?
谢谢你

vd2z7a6w

vd2z7a6w1#

我建议将代码放在lib/math.rb中名为Math的模块中。
数学.rb

module Math
  class << self
    def cube_it(num)
      num*3
    end
  end
end

你不需要使用任何require语句(rails会为你做),你可以很容易地用Math.cube_it("Hi")调用它。
向rails应用程序添加代码还有其他方法,但这是最好的方法。

tzcvj98z

tzcvj98z2#

Rails会在模块和类首次使用时自动加载它们。你可以把你的函数放到一个模块(或类)中,然后把文件放到应用程序的lib目录中。require语句在Rails应用程序中不常使用。

bzzcjhmw

bzzcjhmw3#

如果您使用的是vs code,请转到屏幕顶部的菜单:Coder --> settings --> Configure UserSnippets -->打开ruby.json文件,将代码段添加到{}中:

"Ruby Cube": {
"prefix": "cube_it",
"body": ["{  }**3"],
"description": "Rubys cube the number."
}

当你在.rb文件中输入“cube_it”时,它会显示:

{  }**3

相关问题