2015-06-15 45 views
1

我在,增加了根據用戶的current_page類視圖下正常工作線:紅寶石如果else語句一行不工作

<li class="hvr-bottom <%= 'active' if current_page?(root_path) %>"> <%= link_to "Home", root_path %> </li> 

現在我還想添加不同類對於其他情況,我寧願這樣做的同時保持一條線,我想的(或這是不可能的?):

<li class="hvr-bottom <%= if(current_page?(root_path)) ? 'active' : 'inactive' %>"> <%= link_to "Home", root_path %> </li> 

這將產生錯誤:

syntax error, unexpected ')', expecting keyword_then or ';' or '\n' ...ath)) ? 'active' : 'inactive');@output_buffer.safe_append='... ...^

任何想法如何使這項工作?或者也許是單行不可能在這裏?


我也嘗試過線下(其中遺漏了某些括號),但它具有相同的結果:

<li class="hvr-bottom <%= if current_page?(root_path) ? 'active' : 'inactive' %>"> <%= link_to "Home", root_path %> </li> 

回答

3

你不需要「如果」使用三元。改變你的語句是這樣的:

<%= current_page?(root_path) ? 'active' : 'inactive' %> 
+0

謝謝,這確實起作用 – Nick

+1

爲了記錄在案,「一行'if'」是'如果條件表達式,然後其他表達式2 end'或可替代'如果條件; expression1 else expression2 end'。 (在Ruby中,你幾乎總是可以用分號替換換行符。) –