2017-08-01 80 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 %>