簡體   English   中英

將link_to與管道連接

[英]concatenate link_to with pipe

我想用管道連接一些鏈接。 但是所有鏈接都被if語句包圍。

例:

- if condition1
  = link_to link1

- if condition2
  = link_to link2

- if condition3
  = link_to link3

如果條件1和2為真,則結果應為

link1 | link2

有什么提示怎么做嗎?

為此,我將使用類似的方法:

= [[l1, c1], [l2, c2], [l3, c3]].map{ |l, c| link_to(l) if c }.compact.join('|')

要么

= [(link_to(l1) if c1),(link_to(l2) if c2),(link_to(l3) if c3)].compact.join('|')

最后一個有點笨拙,但這是一個品味問題。 兩者都非常適用於過濾掉不必要的鏈接,並使用|連接其余的鏈接|

但是,如果您的條件不平凡並且有很多條件,則最好將該邏輯移到控制器或某個輔助程序之外(視情況而定)。

如果您有一些通用的方法來測試是否應該顯示鏈接,比如說show?(link) helper,那么事情會變得更好一些,您可以這樣做:

= [l1, l2, l3, l4].map{ |l| link_to(l) if show?(l) }.compact.join('|')

或類似的:

= [l1, l2, l3, l4].select{ |l| show?(l) }.map{ |l| link_to(l) }.join('|')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM