AKW*_*KWF 34 ruby-on-rails constants
可能重复:
Ruby on Rails:在哪里定义全局常量?
我有兴趣在新应用程序上执行"Rails Way".我还想在某种上下文中引用常量来使代码更具可读性.我有一个应用程序,用户可以请求访问其他用户的数据集.此AccessRequest可以具有以下状态之一:
查看拒绝批准
我可以看到这些值将来用于报告功能,所以我想让它们成为常量,以避免任何拼写或大写问题.我以为我会把它们放在config/initializers目录下的constants.rb文件中.
我想将这些称为AccessRequest :: REVIEW.因为我已经有一个名为AccessRequest的模型,将它们放在那里是否有意义?或者将它们包装在config/initializers目录中的constants.rb文件中的类中?Rails方式是哪种方式?
shi*_*ara 43
您不需要在Rails 3中使用常量.最好使用Rails :: Application单例.
在你的application.rb中,你可以定义你的constante:
module Yourapp
class Application < Rails::Application
config.access_request.review = 'xxx'
end
end
Run Code Online (Sandbox Code Playgroud)
在您的代码中,您可以打电话
Yourapp::Application.config.access_request.review
Run Code Online (Sandbox Code Playgroud)
如果在每个环境中更改值,则只需在您config/environments/production.rb
或其他环境中定义config.xx .
小智 28
迟来的回复,但发布此答案仍然出现在搜索结果中.将常量放在模型中是有意义的,因为常量直接与它相关.使用Rails应用程序配置来存储常量是不正确的.
根据application.rb中列出的注释:
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19862 次 |
最近记录: |