在创建时显示新记录 new :id,然后在编辑时显示其 true :id

Show new records new :id on create and then its true :id on edit

我有一个 simple_form 显示使用此 <%= (Invoice.last.id + 1) %> 创建表单时表单的 :id 是什么但是当我点击编辑并再次呈现表单时我想要一些东西像这样 <%= @invoice.id %> if 语句是一个好的解决方案吗?

假设新发票 ID 为 Invoice.last.id + 1 并不好。如果您的网站同时有多个用户,那么您无法预测哪一个会先保存他们的发票。因此,无论您提供的发票 ID 至少有时是错误的。

最好不要显示尚未创建的发票的 ID,例如:

<% unless @invoice.new_record? %>
  Invoice ID: <%= @invoice.id %>
<% end %>

或显示占位符,例如:

Invoice ID: <%= @invoice.new_record? ? 'New Invoice' : @invoice.id %>