[英]HAML conditional indenting link_to with same content
我的HAML文件中有這種情況,但它看起來不是很漂亮:/
- if @receiver.type == "Admin"
= link_to administrator_messages_url, style: "font-family:'Source Sans Pro', sans-serif;color:#676767;color:#2199e8;font-family:Helvetica, Arial, sans-serif;font-size:16px;font-weight:bold;color:#fefefe;text-decoration:none;display:inline-block;padding:8px 16px 8px 16px;border:0 solid #2199e8;border-radius:3px;border:0 solid #af0000;border-radius:5px;" do
View Messages
%i.fa.fa-commenting{"aria-hidden" => "true"}
- else
= link_to messages_url, style: "font-family:'Source Sans Pro', sans-serif;color:#676767;color:#2199e8;font-family:Helvetica, Arial, sans-serif;font-size:16px;font-weight:bold;color:#fefefe;text-decoration:none;display:inline-block;padding:8px 16px 8px 16px;border:0 solid #2199e8;border-radius:3px;border:0 solid #af0000;border-radius:5px;" do
View Messages
%i.fa.fa-commenting{"aria-hidden" => "true"}
如何防止重復條件的內容?
嘗試:
= link_to @receiver.type == 'Admin' ? administrator_messages_url : messages_url, style: "font-family:'Source Sans Pro', sans-serif;color:#676767;color:#2199e8;font-family:Helvetica, Arial, sans-serif;font-size:16px;font-weight:bold;color:#fefefe;text-decoration:none;display:inline-block;padding:8px 16px 8px 16px;border:0 solid #2199e8;border-radius:3px;border:0 solid #af0000;border-radius:5px;" do
View messages
%i.fa.fa-commenting{"aria-hidden" => "true"}
一種技術是從視圖中提取該分支。 視圖不是邏輯的最佳選擇。 甚至與演示相關的邏輯也最好放在其他地方(至少是一個助手)。
# helper
module ReceiverHelper
def receiver_url(receiver)
receiver.type == 'Admin' ? administrator_messages_url : messages_url
end
end
然后在視圖中
= link_to receiver_url(@receiver), style: "font-family:'Source Sans Pro', sans-serif;color:#676767;color:#2199e8;font-family:Helvetica, Arial, sans-serif;font-size:16px;font-weight:bold;color:#fefefe;text-decoration:none;display:inline-block;padding:8px 16px 8px 16px;border:0 solid #2199e8;border-radius:3px;border:0 solid #af0000;border-radius:5px;" do
View Messages
%i.fa.fa-commenting{"aria-hidden" => "true"}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.