gpt4 book ai didi

ruby-on-rails - Rails 辅助方法返回 NilClass

转载 作者:太空宇宙 更新时间:2023-11-03 18:03:13 25 4
gpt4 key购买 nike

我在 User#index 中有这段代码查看:

<%= User.find_each do |user| %>
<%= user.name %>
<% end %>

返回用户名:

user1 user2 user3 ...

然后我将此代码移至 UserHelper :

module UserHelper
def get_users
User.find_each do |user|
user.name
end
end
end

然后从 User#index 调用它查看:

<%= get_users %>

问题是这不会返回任何用户。如果我使用 <%= get_users.class %>它输出 NilClass .为什么辅助方法不返回用户名?

最佳答案

您的辅助方法隐式返回调用 find_each 的结果,这与返回用户名集合不同。

把它想象成运行 5.times { |n| puts n :它的值(value)是什么?不是“0 1 2 3 4”,而是“5”,因为 times 返回调用它的内容,而不是其 block 中运行的内容。

顺便说一句,您的原始代码返回完全相同的东西——您依赖于 find_each block 内的副作用,即附加 user.name回复。

如果您想返回一组用户名,您需要map/etc。并获取每个用户的姓名。或者,IIRC,您可以进行查找和采摘,这样您就只能取回用户的姓名,而不是所有用户字段。

关于ruby-on-rails - Rails 辅助方法返回 NilClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57175389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com