2017-08-01 77 views
1

我對RubyOnRails if-else語句有一個奇怪的問題。if-else語句在視圖(html.erb)上被忽略

我有一個名爲pregunta[1]一個字符串,其餘以這種方式獲得:

<% pregunta = p1[0].split('|') %> 

pregunta[1]可以有3個可能值:(+)(-)(?)

pregunta[1]之後被分配以這種方式命名爲modo另一個字符串:

<font color="#047d7c"><%= modo = pregunta[1] %></font> 

根據的modo的價值,我需要顯示不同的事情,爲了做到這一點,我需要3個不同的如 - else語句:

<%= modo %> 

<% if modo == "(+)" %> 
    Write something to modo afirmativo 
<% end %> 

<% if modo == "(?)" %> 
    Write something to modo interrogativo 
<% end %> 

<% if modo == "(-)" %> 
    Write something to modo negativo 
<% end %> 

我把第一行<%= modo %>爲了檢查我reciving正確的價值。它不會添加其他東西,如\n什麼的。

在瀏覽器中,.erb.html視圖,是表示第一線modo值完全符合正確的價值,但在三個不同的if-else語句被完全忽略。

我認爲,這應該與我的sintaxis有關,因爲我嘗試了case聲明,結果相同。

在控制器上寫代碼並不是一種選擇,我需要把它放在視圖上。因爲它是我需要的另一個代碼的一部分。

有關我在做什麼錯的任何想法?

這裏是request.POST全文:

{ 
    "utf8"=>"✓", 
    "authenticity_token"=>"3gpg8XPR0d/db7V1a69tPHNHapTNyuILleBHV7KD5UeMrNppCVHl6qfe3cZ9ov6y69+uodvrF7NAQRekkX/RHQ==", 
    "~1-pregunta"=>"Futuro Simple | (+) | 3ra. del Plural | to need | necesitar", 
    "1-conAuxiliar"=>"they | will | | need", 
    "1-sinAuxiliar"=>"they | -", 
    "1-espanol"=>"ellos | | necesitarán", 
    "respuestaUsuario-1"=>"content1", 
    "~2-pregunta"=>"Pasado Simple | (-) | 3ra. del Singular(n) | to open | abrir", 
    "2-conAuxiliar"=>"it | did | not | open", 
    "2-sinAuxiliar"=>"No existe", 
    "2-espanol"=>"eso | no | abrió/abría/abriera/abriese", 
    "respuestaUsuario-2"=>"content2", 
    "~3-pregunta"=>"Presente Simple | (?) | 1ra. del Plural | to hurt | lastimar", 
    "3-conAuxiliar"=>"¿do | we | | hurt?", 
    "3-sinAuxiliar"=>"No existe", 
    "3-espanol"=>"nosotros | | lastimamos", 
    "respuestaUsuario-3"=>"content3", 
    "commit"=>"Corregir" 
} 
+0

'p1 [0]'的內容是什麼? – Gerry

+0

謝謝你回答...... =)..我從POST調用中獲得了p [0],這裏是開始的完整代碼。 <%argumento = request.POST%> <%argumento = argumento.to_s.gsub('「','')%> <%argumento = argumento.gsub('=>','=')% > <%argumento = argumento.gsub('{','')%> <%argumento = argumento.gsub('}','')%> <%argumento = argumento.split('〜') %> <%p1 = argumento [1]%> <%p1 = p1.split(',')%> <%pregunta = p1 [0] .split('|')%> < = pregunta [0] = pregunta [0] .to_s.gsub('1-pregunta =','')%> – Apostata

+0

抱歉可怕的顯示,這是我的第一篇文章和評論。 – Apostata

回答

0

無疑存在一個空格pregunta 1內容的兩邊: "Futuro Simple | (+) |

你的摩多變量因此將匹配 「(+)」 與空間任何一方。 Strip /比較前修剪字符串。

0

.strip代碼製作了這個訣竅......我會更詳細地瞭解它,當然我會開始使用params代替POST,謝謝advise =)=)。

<%= MODO = pregunta [1] .strip%>

我真的,真的很感謝你的幫助......非常感謝你格里=)非常感謝你西蒙,給大家=)這是我的第一篇文章...謝謝你=)=)=)...我被卡住,傷心,因爲我可以理解爲什麼它不工作,

0

謝謝大家的所有建議,我讓代碼在這裏使用params工作,我不需要.strip方法,我希望人們覺得它很有用。=)

<% pregunta1 = params[:pregunta1].split('|') %> 
<% conAuxiliar1 = params[:conAuxiliar1].split('|') %> 
<% sinAuxiliar1 = params[:sinAuxiliar1].split('|') %> 
<% espanol1 = params[:espanol1].split('|') %> 
<% respuestaUsuario1 = params[:respuestaUsuario1] %> 

<p class="verde"> 
    <font color="#808080">1. </font> 
    <font color="#8802f6"><%= pregunta1[0] %></font> 
    <font color="#047d7c"><%= pregunta1[1] %></font> 
    <font color="#ff1493"><%= pregunta1[2] %></font> 
    <font color="#808080"> con </font> 
    <font color="#047d7c"><%= pregunta1[3] %></font> 
    <font color="#808080">/</font> 
    <font color="#047d7c"><%= pregunta1[4] %></font><br> 
</p> 

<% if pregunta1[1] == '(+)' %> 

    <font color="#808080">Con auxiliar - </font> 
    <font color="#ff1493"><%= conAuxiliar1[0] %></font> 
    <font color="#8802f6"><%= conAuxiliar1[1] %></font> 
    <font color="#047d7c"><%= conAuxiliar1[2] %></font><br> 

    <font color="#808080">Sin auxiliar - </font> 
    <font color="#ff1493"><%= conAuxiliar1[0] %></font> 
    <font color="#047d7c"><%= conAuxiliar1[2] %></font><br> 

    <font color="#808080">En español - </font> 
    <font color="#ff1493"><%= espanol1[0] %></font> 
    <font color="#047d7c"><%= espanol1[1] %></font><br> 

    <h4 class="rosa"> 
     <font color="#808080">Tu respuesta: </font> 
     <%= respuestaUsuario1 %> 
    </h4> 
    <p class="verde">_____________________________________________________________________</p><br> 

<% end %>