if-else语句在视图上被忽略(html.erb)

时间:2017-08-01 11:50:15

标签: ruby-on-rails if-statement

我有一个使用RubyOnRails if-else语句的奇怪的假设。

我有一个名为pregunta[1]的字符串,我以这种方式获得:

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

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

之后pregunta[1]以这种方式分配给名为modo的另一个字符串:

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

根据modo的值,我需要显示不同的内容,为此,我需要3个不同的if-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 %>以检查我是否正在恢复正确的值。并且它不会添加其他内容,例如\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"
}

3 个答案:

答案 0 :(得分:0)

毫无疑问,您的pregunta 1内容的任何一侧都有空格: knex('whatever_table').on('query', () => {///});

因此,您的modo变量将匹配&#34; (+)&#34;两边都有空格。 Strip /在比较之前修剪字符串。

答案 1 :(得分:0)

.strip 代码成了诀窍...我会详细了解它,我肯定会开始使用params而不是POST,谢谢你的建议=)=)。< / p>

&lt;%= modo = pregunta [1] .strip%&gt;

我真的非常感谢你的帮助......非常感谢Gerry =)非常感谢Simon,对你们所有人=)这是我的第一篇文章...谢谢=)=)=)..我感到困惑和悲伤,因为我能理解为什么它不起作用,

答案 2 :(得分: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 %>