我想在初始化类对象时创建一个哈希。
def initialize
@url = Hash.new
Rails.application.routes.routes.named_routes.values.map do |route|
@url[:request_method] = route.constraints[:request_method].to_s
@url[:path] = route.path.spec.to_s
@url[:controller] = route.defaults[:controller]
@url[:action] = route.defaults[:action]
end
end
初始化后,我只剩下最后返回的值,而不是要使用的库。如何在创建时创建对象库而不是最后返回的值?
答案 0 :(得分:1)
如果您只想收集并重新映射,请执行此操作:
def initialize
@urls = Rails.application.routes.routes.named_routes.values.map do |route|
{
request_method: route.constraints[:request_method].to_s,
path: route.path.spec.to_s,
controller: route.defaults[:controller],
action: route.defaults[:action]
}
end
end
然后,您可以创建存取方法,以任何您想要的格式公开@urls
。