【发布时间】:2018-01-24 19:19:57
【问题描述】:
以下说明了我的问题:
User.all.testing
def self.testing
v = self
v.group_by { |user| user.username = 'username' }
end
导致:
类:0x8ca0558 的未定义方法 `group_by'
但是:
User.all.group_by { |user| user.username = 'username' }
有效。
【问题讨论】:
-
我认为
User.all.group_by(username: 'username')不起作用?group_by是来自Enumerable的方法,但它不带任何参数,但可以使用块调用,例如User.all.group_by { |u| u.username }。它可以称为User.all.group_by { ...,因为all返回的关系被隐式转换为数组。 -
@mikej 它确实有效。我怎样才能从
testing方法中调用它? -
听起来你可能有一些 gem 可以在你的项目中添加额外的功能?
-
@mikej 对不起,我在 StackOverflow 上复制该方法时出错了。显然必须是
group_by { |user| user.username = 'username' } -
太酷了!谜团解开了:D
标签: ruby-on-rails ruby methods