提问人:FERNANDO MONCAYO 提问时间:7/12/2023 最后编辑:FERNANDO MONCAYO 更新时间:7/12/2023 访问量:33
Rails 中的条件逻辑问题:实例方法不返回预期值
Problem with conditional logic in Rails: instance method does not return expected value
问:
我正在开发一个允许用户发帖的 Rails 应用程序。如果数据库中的 anon 字段设置为 1,我希望帖子是匿名的。为了实现此功能,我在 Post 模型中添加了一个名为 display_author 的方法,如果 anon 为 0,它应该返回用户名,如果 anon 为 1,则返回字符串“Anon”。
模型
def display_author
if anon == 0
'Anon'
else
user.users
end
end
观看帖子
<% @posts.each do |post| %>
<%= post.display_author %>
<% end %>
问题是,即使 anon 为 1,我仍然看到用户名而不是“anon”。我已经多次浏览了我的代码并尝试调试它,但我无法弄清楚为什么它没有按预期工作。
问题是,即使 anon 为 1,我仍然看到用户名而不是“anon”。我已经多次浏览了我的代码并尝试调试它,但我无法弄清楚为什么它没有按预期工作。
答:
-1赞
kwerle
7/12/2023
#1
第一步:选择一个测试框架。
说真的,你的代码有一个基本问题。你需要测试。
一旦你有一个测试框架和一个失败的基本测试,在前面添加一个调试行,找出anon到底是什么(提示,它不是0)。if anon == 0
然后进入 anon 方法,看看发生了什么。
评论
if anon == 0 then 'Anon'
anon
self.anon