當你說空白,而不是你的意思是不顯示鏈接?如果是這樣,你不能只是簡單地有條件調用的link_to助手:
<td><%= product_sale.product.consignor ? (link_to edit_consignor_path(product_sale.product.consignor)) : '' %></td>
只要你的路由的設置是否正確,你應該不需要指定controller
,action
和id
無論是。
如果你想顯示的東西更有意義的最終用戶,而不是默認的鏈接,然後編輯路徑之前加上一個額外的參數:
<td><%= product_sale.product.consignor ? (link_to product_sale.product.consignor.name, edit_consignor_path(product_sale.product.consignor)) : '' %></td>
,也許可以考慮設置變量可讀性:
<td><% consignor = product_sale.product.consignor %>
<%= consignor ? (link_to consignor.name, edit_consignor_path(consignor)) : '' %></td>
如果您在沒有設置寄售商的情況下顯示空白以外的內容時不感興趣,那麼您可以使用if語句替換第三位操作員,如2called-chaos所示:
<td><% consignor = product_sale.product.consignor %>
<%= link_to consignor.name, edit_consignor_path(consignor) if consignor %></td>
<%= link_to(...)如果product_sale.product.consignor%>'? –
@ 2called-chaos這也可以......只有像我這樣做過的使用三級操作符的好處是,你可以顯示除空白字符串以外的東西 - 例如:'Consigner not assigned' – David
感謝您的回答。但是,當產品沒有發貨人時,您的解決方案顯示爲空白,這是正確的,但對於顯示貨主鏈接的產品已成爲/發貨人/ 438ae0ab-00ca-4d10-a0e1-8fd4af8d1171 /編輯。那是因爲我的路線設置發生了嗎? – Catmal