初始化类对象时创建哈希

时间:2014-10-28 17:32:50

标签: ruby hash

我想在初始化类对象时创建一个哈希。

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

初始化后,我只剩下最后返回的值,而不是要使用的库。如何在创建时创建对象库而不是最后返回的值?

1 个答案:

答案 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