我的日记控制器中有一个show方法
def show
@user = current_user
@diary2 = Diary.find_by_id(params[:id])
@pick3 = ThreeDigitDraw.new
@pick4 = FourDigitDraw.new
@mega = MegaDraw.new
@matches = []
end
我的日记/观点/节目:
<% @user.three_digit_draws.uniq.each do |t| %>
<% if t.pick_three == @user.state.three_digit %>
<% @matches << t.pick_three %>
<% end %>
<% end %>
<%= @matches %>
此循环打印出if语句中匹配的数字。它只会一次打印一个数字,但是当这个数字匹配时,我想把它铲到数组@matches
中。我遇到的问题是,下一个条目一直在替换之前它们没有像["234", "129", "348"]
那样在数组中累积,而是在这种情况下我只是像["348"]
一样推送最后一个条目。
如何让该数组列出匹配的数字?
答案 0 :(得分:0)
那是因为当您加载视图时,您无法再将这些值发送到控制器中的@matches。
我猜您可以避免在您的视图中执行此操作,并且使用@user.three_digit_draws
迭代select
以填充@匹配:
@matches = @user.three_digit_draws.uniq.select do |t|
t.pick_three == @user.state.three_digit
end