English 中文(简体)
Jbuilder: 我如何能够合并2个顶级阵列?
原标题:Jbuilder: How I can merge 2 top level arrays?

我有两种最高层阵列,其形式相同。 我也想把他们合并起来:

json = Jbuilder.encode do |json|
  json.(companies) do |json, c|
    json.value c.to_s
    json.href employee_company_path(c)
  end
  json.(company_people) do |json, cp|
    json.value "#{cp.to_s} (#{cp.company.to_s})"
    json.href employee_company_path(cp.company)
  end
end

因此,产出如下:[{数值:“a”,href:“/sample1”},{数值:“b”,href:“/sample2”}>

但是,上述法典并不奏效。 仅包括第二阵列:[{数值:“b”,href:“/sample2”}]

谁能帮助我? 提前感谢。

最佳回答
result =  []
companies.each do |c|
  result << {:value => c.to_s, :href => employee_company_path(c)
end
company_people.each do |c|
  result << {:value => "#{cp.to_s} (#{cp.company.to_s})", :href => employee_company_path(cp.company)
end
# at this point result will be an array of companies and people which just needs converting to json.
result.to_json
问题回答

我知道两种选择:

  1. • 构造之前的阵列,这些阵列与多种弹道:

    def Employee
      def company_path
        self.company.company_path if self.company
      end
    end
    
    [...]
    
    combined = (companies + company_people).sort_by{ |c| c.value }
    # Do other things with combined
    
    json.array!(combined) do |duck|
      json.value(duck.to_s)
      json.href(duck.company_path)
    end
    
  2. 或者当你把 j子组合起来时:

    company_json = json.array!(companies) do |company|
      json.value(company.to_s)
      json.href(employee_company_path(company))
    end
    
    people_json = json.array!(company_people) do |person|
      json.value(person.to_s)
      json.href(employee_company_path(person.company))
    end
    
    company_json + people_json
    

在这两种情况下,都不必打上编号。

尤里的回答让我结束,但我的最终解决办法是,在我的<代码>.jbuilder档案中这样做。

json.array!(companies) do |company|
  json.value(company.to_s)
  json.href(employee_company_path(company))
end

json.array!(company_people) do |person|
  json.value(person.to_s)
  json.href(employee_company_path(person.company))
end

我把阵列排列的顺序是组合阵列的顺序。





相关问题
rails collection_select vs. select

collection_select and select Rails helpers: Which one should I use? I can t see a difference in both ways. Both helpers take a collection and generates options tags inside a select tag. Is there a ...

SSL slowness in EC2

We ve deployed our rails app to EC2. In our setup, we have two proxies on small instances behind round-robin DNS. These run nginx load balancers for a dynamically growing and shrinking farm of web ...

Auth-code with A-Za-z0-9 to use in an URL parameter

As part of a web application I need an auth-code to pass as a URL parameter. I am currently using (in Rails) : Digest::SHA1.hexdigest((object_id + rand(255)).to_s) Which provides long strings like : ...

RubyCAS-Client question: Rails

I ve installed RubyCAS-Client version 2.1.0 as a plugin within a rails app. It s working, but I d like to remove the ?ticket= in the url. Is this possible?

activerecord has_many :through find with one sql call

I have a these 3 models: class User < ActiveRecord::Base has_many :permissions, :dependent => :destroy has_many :roles, :through => :permissions end class Permission < ActiveRecord::...

Ordering a hash to xml: Rails

I m building an xml document from a hash. The xml attributes need to be in order. How can this be accomplished? hash.to_xml

Text Editor for Ruby-on-Rails

guys which text editor is good for Rubyonrails? i m using Windows and i was using E-Texteditor but its not free n its expired now can anyone plese tell me any free texteditor? n which one is best an ...

How to get SQL queries for each user where env is production

I’m developing an application dedicated to generate statistical reports, I would like that user after saving their stat report they save sql queries too. To do that I wrote the following module: ...

热门标签