Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 这不管用。我想现在应该管用了。请查收没有。这是行不通的,因为在ruby中访问散列看起来像item['items'][''''.],而不像在javascriptitem中。items…sort\u by被证明是更有效的,但是在这里排序是绝对多余的,尽管对资源_Ruby On Rails_Ruby_Ruby 2.0_Ruby 2.2 - Fatal编程技术网

Ruby on rails 这不管用。我想现在应该管用了。请查收没有。这是行不通的,因为在ruby中访问散列看起来像item['items'][''''.],而不像在javascriptitem中。items…sort\u by被证明是更有效的,但是在这里排序是绝对多余的,尽管对资源

Ruby on rails 这不管用。我想现在应该管用了。请查收没有。这是行不通的,因为在ruby中访问散列看起来像item['items'][''''.],而不像在javascriptitem中。items…sort\u by被证明是更有效的,但是在这里排序是绝对多余的,尽管对资源,ruby-on-rails,ruby,ruby-2.0,ruby-2.2,Ruby On Rails,Ruby,Ruby 2.0,Ruby 2.2,这不管用。我想现在应该管用了。请查收没有。这是行不通的,因为在ruby中访问散列看起来像item['items'][''''.],而不像在javascriptitem中。items…sort\u by被证明是更有效的,但是在这里排序是绝对多余的,尽管对资源贪婪。是的,reduce在这里看起来更好。但是,它可以预先对许多项搜索进行排序,考虑一个最佳实践,使用 SoTyg{{x x[x:CytEdItAt] }< /Cord>代替原来的排序< /代码>。加上f.a应该是f[:a]。如果您主要关心的是



这不管用。我想现在应该管用了。请查收没有。这是行不通的,因为在ruby中访问散列看起来像
item['items'][''''.]
,而不像在javascript
item中。items…
sort\u by
被证明是更有效的,但是在这里排序是绝对多余的,尽管对资源贪婪。是的,
reduce
在这里看起来更好。但是,它可以预先对许多项搜索进行排序,考虑一个最佳实践,使用<代码> SoTyg{{x x[x:CytEdItAt] }< /Cord>代替原来的<代码>排序< /代码>。加上
f.a
应该是
f[:a]
。如果您主要关心的是编写巧妙的代码,那么排序可能看起来是多余的,但是如果您专注于编写清晰的代码,并避免过早优化,那么排序就很有意义。当您的排序需要方法分派时,请首选
sort\u by
。它使用了施瓦茨变换进行优化,使其更加有效。您的解决方案有效,但我在这里感到困惑。既然detect return是第一个可能的find,那么
sort\u by
是如何工作的呢?
sort\u by
被证明是更有效的,但是这里的排序是绝对多余的,尽管对资源贪婪。是的,
reduce
在这里看起来更好。但是,它可以预先对许多项搜索进行排序,考虑一个最佳实践,使用<代码> SoTyg{{x x[x:CytEdItAt] }< /Cord>代替原来的<代码>排序< /代码>。加上
f.a
应该是
f[:a]
。如果您主要关心的是编写巧妙的代码,那么排序可能看起来是多余的,但是如果您专注于编写清晰的代码,并避免过早优化,那么排序就很有意义。当您的排序需要方法分派时,请首选
sort\u by
。它使用了施瓦茨变换进行优化,使其更加有效。您的解决方案有效,但我在这里感到困惑。既然detect return是第一个可能的find,那么
sort\u by
是如何工作的呢?
sort\u by
被证明是更有效的,但是这里的排序是绝对多余的,尽管对资源贪婪。是的,
reduce
在这里看起来更好。但是,它可以预先对许多项搜索进行排序,考虑一个最佳实践,使用<代码> SoTyg{{x x[x:CytEdItAt] }< /Cord>代替原来的<代码>排序< /代码>。加上
f.a
应该是
f[:a]
。如果您主要关心的是编写巧妙的代码,那么排序可能看起来是多余的,但是如果您专注于编写清晰的代码,并避免过早优化,那么排序就很有意义。当您的排序需要方法分派时,请首选
sort\u by
。它使用了施瓦茨变换进行优化,使其更加有效。您的解决方案有效,但我在这里感到困惑。既然detect return是第一个可能的find,那么
sort\u by
是如何工作的呢?
sort\u by
被证明是更有效的,但是这里的排序是绝对多余的,尽管对资源贪婪。是的,
reduce
在这里看起来更好。但是,它可以预先对许多项搜索进行排序,考虑一个最佳实践,使用<代码> SoTyg{{x x[x:CytEdItAt] }< /Cord>代替原来的<代码>排序< /代码>。加上
f.a
应该是
f[:a]
。如果您主要关心的是编写巧妙的代码,那么排序可能看起来是多余的,但是如果您专注于编写清晰的代码,并避免过早优化,那么排序就很有意义。当您的排序需要方法分派时,请首选
sort\u by
。它使用了施瓦茨变换进行优化,使其更加有效。您的解决方案有效,但我在这里感到困惑。既然detect return是第一个可能的find,那么
sort\u by
如何处理它呢。?
'histories':[
{
  {
   ...
  },
  'created': "date1",
  'items':[
    {
     'a': "Ready",
     'b': "dfknsknfs",
    },
    {
     'a': "sdfjbsf",
     'b': "hello23",
    }
  ]
},
{
  {
   ...
  },
  'created': "date2",
  'items':[
    {
     'a': "sknfkssd",
     'b': "ksdfjshs",
    },
    {
     'a': "Ready",
     'b': "shdfjsh",
    }
  ]
},
...
]
ready_item = histories.select { |item| item.items.detect {|f| f.a == "Ready" } }
ready_item
hash = { histories:[
  { created: "2014-04-01",
    items:[
        { a: "Ready", b: "NOT to be chosen" },
        { a: "sdfjbsf", b: "hello23" }
  ]},  
  { created: "2015-04-01",
    items:[
        { a: "Ready", b: "to be chosen" },
        { a: "sdfjbsf", b: "hello23" }
  ]},  
  { created: "2014-03-01",
    items:[
        { a: "sknfkssd", b: "ksdfjshs" },  
        { a: "unready", b: "shdfjsh" }   
   ]}
]}

hash[:histories].select do |item|
  item[:items].detect do |item|
    item[:a] == 'Ready' # select ready only
  end 
end.reduce(nil) do |memo, item| # reduce to newest
  memo = item if memo.nil? || 
         Date.parse(memo[:created]) < Date.parse(item[:created])
end

#⇒ {
#  :created => "2015-04-01",
#    :items => [
#    [0] {
#      :a => "Ready",
#      :b => "to be chosen"
#    },
#    [1] {
#      :a => "sdfjbsf",
#      :b => "hello23"
#    }
#  ]
# }
histories.select { |h| 
  h[:items].detect {|f| f[:a] == 'Ready' } 
}.sort_by {|x| x[:created_at] }.last