【发布时间】:2017-06-19 14:40:37
【问题描述】:
我有以下可枚举来根据类别 (HAML) 选择文章
- blog( ENV[ "site" ] ).articles.select { | a | a.data[ :category ] == category }.each_with_index do | article, index |
= index
我希望能够限制此调用,但可以选择,即返回 2 或可能全部返回
- blog( ENV[ "site" ] ).articles.select { | a | a.data[ :category ] == category }.first( 2 ).each_with_index do | article, index |
= index
即引入first(2)
但不可能选择执行类似 first( 'all' ) 或 first( ) 的操作
谢谢
【问题讨论】:
-
您不应该将这么多逻辑塞进您的视图中。您可以在模型上使用范围/方法来处理
select部分,并使用助手来处理first(2)/all的条件逻辑。请注意,first('all')没有意义,如果您想要all,则只需省略.first调用即可。 -
@meagar 是对的。
blog(...)是什么?articles是 ActiveRecord 关系吗?可能有更简洁的方法来实现您想要的,而无需定义一个新方法。