module Constant
BANQUET_TYPE_OF_OFFER = [['Narrow By Offer Type',''], ["A la Carte", "A la Carte"],
["Alcohol Offer", "Alcohol Offer"], ["Buffet", "Buffet"], ["Brunch", "Brunch"],
["Happy Hours", "Happy Hours"], ["Set Menu", "Set Menu"],["Banquets", "Banquets" ]]
end
class ApplicationController < ActionController::Base
include Constant
end
= f.select_tag "type_of_offer", options_for_select(Constant::BANQUET_TYPE_OF_OFFER,
@selected), :name => "banquet[type_of_offer][]", :multiple => true
我在rails应用程序中创建了很多常量,比如java常量。这是最佳做法还是不行?还有其他任何解决方案吗?
答案 0 :(得分:2)
正如@Batkins所指出的,你不需要在你的班级中包含该模块。
当归结为常量时,它归结为使用定义为Ruby的常量与定义为YAML的偏好。
理想情况下,BANQUET_TYPE_OF_OFFER
将在模型中定义,它更有意义,而不是在全球位置。如果您必须在模型之外使用它,请考虑将其移至config/initializers/
而不是lib
。