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