您好我是rails的初学者,我正在尝试创建一个非常基本的Todo列表应用程序。
对于show action
查看单个Todo列表的观点,我试图编写一个if / else语句,表示当complete_by
日期为空时(因为有些人可能不想要特定列表)如果日期没有完整,则说明complete_by
是否有日期,它会说明日期。
以下是我创建新列表的表单:
这是我的代码(在/app/views/lists/show.html.erb中)
<h2><%= @list.title %></h2>
<% if @list.complete_by(presence: false) %>
<h4>This list has no completion date</h4>
<% else %>
<h4>To be completed by: <%= @list.complete_by %></h4>
<% end %>
<%= link_to 'Back', lists_path %>
我知道<% if @list.complete_by(presence: false) %>
行是不正确的,但我该怎样做,以便不会出现任何参数错误:
感谢您的时间,
布赖恩
答案 0 :(得分:1)
只需使用nil
检查值是否为<% if @list.complete_by.nil? %>
<h4>This list has no completion date</h4>
<% else %>
<h4>To be completed by: <%= @list.complete_by %></h4>
<% end %>
。
<% if @list.complete_by %>
<h4>To be completed by: <%= @list.complete_by %></h4>
<% else %>
<h4>This list has no completion date</h4>
<% end %>
您还可以通过交换条件来利用nil-to-false评估:
<% if !@list.complete_by %>
<h4>This list has no completion date</h4>
<% else %>
<h4>To be completed by: <%= @list.complete_by %></h4>
<% end %>
或(稍微不那么可读)
bash