2012-01-10 50 views
0

在Rails(erb)視圖中,我想有條件地顯示一些文本和鏈接。Rails視圖:有條件地顯示文本和鏈接;有沒有比這更簡單的方法?

有什麼比這更簡單:

<% if some_condition %> 
     Go to 
<%=  link_to("Home", root_url) %> 
<% else %> 
     See all 
<%=  link_to("objects", my_objects_path) %> 
<% end %> 

我有點懊惱的<%<%=標籤的數量。

+0

切換到HAML)http://haml-lang.com – iwasrobbed 2012-01-10 17:11:05

+0

是;把它放在一個部分或一個幫手。 – 2012-01-10 17:17:25

+0

@DaveNewton你能否詳細解答一下答案? – Guillaume 2012-01-10 17:24:20

回答

0

爲助手(根據實際使用情況,它可能是一個應用廣泛的幫手,一個模型助手等):

def home_or_objects c 
    if c 
    link_to "Go to home", root_url 
    else 
    link_to "See all objects", my_objects_path 
    end 
end 

(我不會linkinate只有一個字 - 小靶向,和IMO少交際YMMV)

然後在景觀:

<%= home_or_objects some_condition %> 

作爲部分它的渲染局部的問題,或許以本地方式傳遞條件,或者如果它是一個實例變量,則可以直接引用它而不需要傳遞。

<%= render :partial => 'home_or_objects', :locals => { :c => some_condition } %> 

(有幾個方面的部分可以處理IMO一個助手是比較合適的。)

相關問題