實現下面的代碼來讀入值並用合適的值填充表,但是當其中一個方法沒有返回任何東西時,它會產生錯誤並導致頁面崩潰。處理由不返回值的方法導致的錯誤的最佳方法?
<tr class="event-row" >
<td><%= event.description %></td>
<td><%= event.contact.name %></td>
<td><%= event.start.strftime('%H:%M') %></td>
<td><%= event.end.strftime('%H:%M') %></td>
<td><%= link_to "edit", edit_event_path(event) %></td>
<td><%= link_to "delete", event, method: :delete, data: {confirm: "Are you sure?"} %>
<td><%= link_to "show", event_path(event) %></td>
</tr>
如何檢查方法是否沒有返回值?
你可以說' event.try(:description)''event.try(:contact).name'' event.try(:start)''event.try(:end)'。這不會拋出錯誤 – Sontya
或使用andand寶石,我認爲它稍微好一點。或者使用知道該怎麼做的演示者,那可能更好。 –
@ cockmagic-是的bcoz'event.try(:contact)'是零,我們正在調用'name',這就是爲什麼。你可以嘗試'event.try(:contact).try(:name)'或查看我的答案。如果條件也可以實現這個 – Sontya