我有一个帮助方法states_list
,它返回了我想要在我的Rails应用程序的几个不同位置访问的美国州数组,包括:
validates :state, inclusion: { in: states_list }
除了User模型之外,这些将在其他地方重复使用。我想知道存储这个辅助方法的适当位置在哪里,以及如何从模型和测试中访问它。 (我最初的想法是在帮助程序目录中的GeographyHelper文件中,但我读到那些特意是视图助手......)谢谢!
答案 0 :(得分:1)
将states_list
方法放在自己的模块中并将其包含在用户模型中可能是最好的服务。创建模块的好处是可以很好地分离和重用您的问题(如果您想要验证其他模型中的状态。
1)创建一个放置模块的地方,方法是进入/lib
目录并为自定义模块创建一个目录(我们在这里称之为custom_modules
)。
2)创建模块文件:/lib/custom_modules/States.rb
3)编写模块:
module CustomModules
module States
def states_list
#your logic here
end
end
end
4)在您的用户模型或您希望使用此功能的任何其他模型中包含新的状态模块。
class User < ActiveRecord::Base
include CustomModules::States
validates :state, inclusion: { in: states_list }
end
答案 1 :(得分:0)
您可以将此方法存储在application helper
或user model
自己。