如何在rails中设置标志值?

时间:2015-07-03 09:24:22

标签: ruby-on-rails-4

我的代码是:

<%@flag=0%>
<%if !@current_users_challenges.blank?%>    
                <%@current_users_challenges.each do |k|%>
                        <%@flag=0%>
                        <%match_results_comfirmation_loop=match_results_comfirmation%>
                         <%for j in 0...match_results_comfirmation_loop.size%>
                                    <%if k.created_at < match_results_comfirmation_loop[j].updated_at%>
                                            Agree Disagree <%= match_results_comfirmation_loop[j].updated_at.localtime.strftime("%A %d  %B %Y %I:%M %p")%>
                                            <br>
                                            <%match_results_comfirmation=match_results_comfirmation.drop(j+1)%>
                                    <%else%>        
                                            <%@flag=1%>
                                            <%break%>
                                    <%end%>

                                    Flag <%=@flag%>
                                    <br>
                                    <%if @flag==1%>
                                     ^^^^^^^^^^^^^^^^^^^^^^^^666
                                    <%else%>
                                    ***************************
                                    <%end%>
                         <%end%>

                <%end%>
        <%end%>

即使我为@flag指定了值= 1然后打破了循环,但我的标志值仍为零。我无法理解为什么会这样。并且想要将值设置为1,那么这个问题的解决方案是什么?

2 个答案:

答案 0 :(得分:1)

我有同样的问题然后我从可靠的名字中删除@符号并为我工作。
所以你可以尝试下面的代码:

{ 
    "aggregate" : "__collection__" ,
    "pipeline" : [ 
        { "$group" : { "_id" : "$postId" } },
        { "$skip" : 1 },
        { "$limit" : 1 }
    ]
}

答案 1 :(得分:0)

控件未到达显示@flag值的位置。不确定,但你的代码可能是这样的:

<% for j in 0...match_results_comfirmation_loop.size %>
    <% if k.created_at < match_results_comfirmation_loop[j].updated_at %>
        Agree Disagree <%= match_results_comfirmation_loop[j].updated_at.localtime.strftime("%A %d  %B %Y %I:%M %p") %>
        <br>
        <% match_results_comfirmation=match_results_comfirmation.drop(j+1) %>
        ***************************
    <% else %>
        <% @flag = 1 %>
        Flag <%= @flag %>
        <% break %>
    <% end %>
<% end %>

这里的重点是,当你的@flag为1时,你会在显示值之前退出循环。所以,你需要根据执行控制来操作你的代码。