gpt4 book ai didi

ruby-on-rails - 处理 View 中的 nil(即 @post.author.name 中的 nil 作者)

转载 作者:数据小太阳 更新时间:2023-10-29 08:19:19 29 4
gpt4 key购买 nike

我想显示帖子作者的名字; <% @post.author.name %>作品除非作者是零。所以我要么使用 unless @post.author.nil?或者添加一个 author_name 方法来检查 nil,如 <% @post.author_name %> .我尽量避免后者。

问题是我可能需要根据是否有值来添加/删除单词。例如,如果我只显示 nil,“Posted on 1/2/3 by”就是内容。如果 author 为 nil,我需要删除“by”。

最佳答案

Null object pattern是避免这种情况的一种方法。在你的类里面:

def author
super || build_author
end

这样你无论如何都会得到一个空的作者。然而,由于有时当您确实期望 nil 时实际上并不希望有一个空对象,因此您可以使用某种演示者。

class PostPresenter
def initialize(post)
@post = post
end

def post_author
(@post.author && @post.author.name) || 'Anonymous'
end
end

另一种方法是使用 try,如 @post.author.try(:name),如果你能习惯的话。

关于ruby-on-rails - 处理 View 中的 nil(即 @post.author.name 中的 nil 作者),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3207966/

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