在哪里/如何在Rails 3应用程序中编码常量
可能重复:
Ruby on Rails:在哪里定义全局常量?
我有兴趣在一个新的应用程序上做这个“Rails方式”。 我还想在某种上下文中引用常量,以使代码更具可读性。 我有一个应用程序,用户可以请求访问另一个用户的数据集。 此AccessRequest可以具有以下状态之一:
审查被拒绝批准
我可以看到这些值将来用于报告function,所以我想让它们成为常量以避免任何拼写或大小写问题。 我想我只是把这些放在config / initializers目录下的constants.rb文件中。
我想把这些称为AccessRequest :: REVIEW。 由于我已经有了一个名为AccessRequest的模型,所以把它放在那里是有道理的? 或者把它们包装在config / initializers目录下的constants.rb文件的类中? Rails方式是哪种方式?
你不需要在Rails 3中使用常量。最好使用Rails :: Application单例。
在你的application.rb中,你可以像下面这样定义你的constante:
module Yourapp class Application < Rails::Application config.access_request.review = 'xxx' end end
在你的代码后,你可以打电话
Yourapp::Application.config.access_request.review
如果在每个环境中更改了值,那么只需在config/environments/production.rb
或其他环境中定义config.xx即可。
迟到的答复,但发布作为这个答案仍然出现在search结果中。 把常数放在模型中是有意义的,因为常数直接与它有关。 使用Rails应用程序configuration来存储常量是不正确的。
根据application.rb中列出的注释:
# Application configuration should go into files in config/initializers # -- all .rb files in that directory are automatically loaded
从Rails 3开始,这仍然是有效的。