0

我不明白为什么我不能打印简单循环简单方法调用。如果我调用 print_message() 方法,它会工作,但如果我调用 print_loop() 方法,因为它是在下面的代码中编写的,它不会工作。有什么问题,我该如何解决?谢谢!

        #app/views/controller/file.js.erb

        <% def print_message()
                "print something"
        end%>


        <% def print_loop() %>   
              <% for i in 0..3 %>
                <%= i %>
              <% end %>
        <%end%>

        if($('#par').is(':checked')){   
              $("#test_div3 #par1").html("<%= print_loop%>")
        } else
             {
             $("#test_div3 #par2").html("<%= 'not checked'%>")
             }
4

1 回答 1

1

问题很可能是由于您没有关闭def print_message()并且正在关闭的方式def print_loop()

最终,您不想通过在 erb 视图中创建方法来编写意大利面条式代码。

您应该print_message()在这样的帮助文件中创建:

application_helper.rb

...
def print_message
  // Loop code in here
end
...

然后在您的 erb 文件中调用此辅助方法。我会亲自打印循环,然后根据检查的内容隐藏/显示,如下所示:

.html.erb

...

<div id="myId" style="display:none;"><%= print_message %></div>

if($('#par').is(':checked')){   
    $("#myId").show();
} else {
    $("#myId").hide();
}
...
于 2013-10-31T20:54:13.813 回答