加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – rails by by和按列排序

发布时间:2020-12-17 03:42:52 所属栏目:百科 来源:网络整理
导读:在我的控制器中,我得到按类别分组的所有额外内容: def index @categories = Extra.all.group_by(:category)end 结果类似于哈希数组: {#Category id:1,sort:2 = [#Extra id:1,#Extra id:2],#Category id:2,sort: 1 = [#Extra id:3,#Extra id:4]} 我想按类别
在我的控制器中,我得到按类别分组的所有额外内容:

def index
  @categories = Extra.all.group_by(&:category)
end

结果类似于哈希数组:

{#<Category id:1,sort:2> => [#<Extra id:1>,#<Extra id:2],#<Category id:2,sort: 1> => [#<Extra id:3>,#<Extra id:4>]}

我想按类别“排序”列而不是id排序,它应该如下所示:

{#<Category id:2,sort:1> => [#<Extra id:3>,#<Extra id:4],#<Category id:1,sort: 2> => [#<Extra id:1>,#<Extra id:2>]}

当我尝试:

def index
  @categories = Extra.all.group_by(&:category).sort_by{|s| s[:sort]}
end

我得到“没有将符号隐式转换为整数”.那是因为我在“sort_by”中使用了一个符号吗?

解决方法

试试这个,group_by将返回你的哈希,你试图在[#<类别ID:2,排序:1>,[#<额外id:3>,#< Extra]的数组上调用[:sort] ID:4] 你应该把它们带入两个变量| key,value |关键是类别

def index
  @categories = Extra.all.group_by(&:category).sort_by{|category,_extras| category.sort }
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读