【发布时间】:2013-02-02 06:32:00
【问题描述】:
导轨:3.2.11
我在lib 中有这个模块,在application.rb 中是必需的。我想让常量FORBIDDEN_USERNAMES 在整个应用程序中可用。常量是从路由生成的值数组。我无法将其设为初始化程序,因为尚未加载路由。
下面的内容不起作用,因为 FORBIDDEN_USERNAMES 返回一个空数组。
# in lib
module ForbiddenUsernames
def self.names
Rails.application.reload_routes!
all_routes = Rails.application.routes.routes
all_names = Array.new
all_routes.each do |route|
# populate all_names array
end
all_names.uniq
end
end
FORBIDDEN_USERNAMES = ForbiddenUsernames.names
# when ForbiddenUsernames.names is called by itself, it does not return [] or nil
在整个应用程序中,我如何才能使用FORBIDDEN_USERNAMES?谢谢!
【问题讨论】:
-
也许这会有所帮助。 IE。将代码放在
after_initialize块中:stackoverflow.com/questions/8707495/… -
你可以写
[]而不是Array.new
标签: ruby-on-rails ruby ruby-on-rails-3