2014-01-09 32 views
2

我想檢查一個條件,然後包括「停止服務器」和「啓動服務器」錨標記。我收到一個錯誤。紅寶石三元運算符在HTML與HTML標記

請告知需要更改。謝謝。

<%= condition ? "Running" <a href='/stop'> Stop Server </a> :"Stopped" <a href='/start'> Start Server</a> %> </td> 

回答

7

你在混合代碼和html。這會更清楚地做這樣的事情:

<% if condition %> 
    "Running" <a href='/stop'> Stop Server </a> 
<% else %> 
    "Stopped" <a href='/start'> Start Server</a> 
<% end %> 
+0

這是一個很好的答案。但是另外,我會補充說,原始問題的一大部分是你輸出的標籤(從Ruby的角度來看,[或者應該是]字符串)完全沒有引用。你可以解決這個問題,但是這條線很快變得複雜並且難以閱讀和維護。這是我馬特的答案是要走的路。 –

0

你應該這樣做。

<%= condition ? "Running <a href='/stop'> Stop Server </a>" :"Stopped <a href='/start'> Start Server</a> %> </td>" 

錨標記如果本身不是有效的ruby語句和erb是關於動態視圖。一旦你把它作爲一個字符串,你的ruby語句就會變得有效,這就是你所缺少的。

2

看看link_to_if

<%= 
    link_to_if condition, 'Run server', run_server_path do 
    link_to 'Stop server', stop_server_path 
    end 
%>