如果我的一个模型函数做了一些复杂的事情,或者它的逻辑有一些部分可以在另一个模型函数中重用,那么在模型中定义第三个函数使其成为实例方法或将其定义为类方法是否正确?
我的第一个解决方案是在我的模型文件(比如 user.rb)中做这样的事情:
#Some Function
def magic_function
return true
end
class User < ActiveRecord::Base
def first_function
return magic_function
end
def second_function
return 1 if magic_function
return 0
end
end
但是我在进行 rspec 测试和浏览互联网时无法存根 magic_function 让我相信我所做的通常不是由其他人完成的......有些人似乎使用模块,但在我的情况下,这个函数只需要在这个文件。我只是将它定义为干燥我的代码或使其更具可读性,但我认为它不应该是一个实例方法,因为我不需要从这个文件外部调用它,它也不需要是一个类方法出于同样的原因。定义这样的函数的正确位置在哪里?