rails通过方法调用打印循环

时间:2013-10-31 19:22:40

标签: jquery ruby-on-rails

我不明白为什么我不能打印简单的循环简单方法调用。如果我调用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'%>")
             }

1 个答案:

答案 0 :(得分: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();
}
...