类似于Ruby on Rails中的这个C#代码

Jim*_*mmy 3 c# translation ruby-on-rails

我试图根据条件获取对象的集合.现在通常在C#中我会做这样的事情

employeesCollection.Where(emp => emp.Name == "john");
Run Code Online (Sandbox Code Playgroud)

我如何在Ruby on Rails中做类似的事情(我试图将一组对象映射到一个选择,但我只想映射符合条件的某些对象.

我当前ruby on rails代码看起来像这样

<%= select( 'page', 'id', @post.pages.map {|page| [page.title, page.id]}) %>
Run Code Online (Sandbox Code Playgroud)

我想为页面属性添加一个条件

有人可以帮忙吗?

Mar*_*off 5

你可以select在之前扔一块map:

>> [1,2,3,4,5].select { |x| x.odd? }.map{ |x| x*x }
=> [1, 9, 25]
Run Code Online (Sandbox Code Playgroud)

select的同义词是find_all.

正如您可能猜到的,select在Ruby中大致相当于LINQ Where.选择一个块,并将您的每个元素Enumerable传递给该块; 当块返回true(非假,非零)时,则该元素被select编辑.

反义词selectreject. reject当你的选择是否定的时候首选:也就是说,

ary.select {|x| x != 'foo'}
Run Code Online (Sandbox Code Playgroud)

不太优选

ary.reject {|x| x == 'foo'}
Run Code Online (Sandbox Code Playgroud)