簡體   English   中英

滑軌范圍

[英]rails block scope

我想計算此塊中的條目。由於ruby塊變量作用域,我不使用此代碼。有什么辦法可以解決此問題?

    arr_showcase.each do |entry|
          @entry = ContestEntry.find_by_id(entry)
          if @entry.view_in_showcase == true
            @entry.view_in_showcase = false
            @entry.save
            entry_added_showcase += 1 
          else
            @entry.view_in_showcase = true
            @entry.save
            entry_removed_showcase += 1 
          end
    end
    redirect_to :back, :notice => "#{entry_added_showcase} Desings added, #{entry_removed_showcase} Designs removed."

您在哪里聲明entry_added_showcaseentry_removed_showcase 您必須在塊外初始化它們。

entry_added_showcase = entry_removed_showcase = 0
arr_showcase.each do |entry|
      @entry = ContestEntry.find_by_id(entry)
      if @entry.view_in_showcase == true
        @entry.view_in_showcase = false
        @entry.save
        entry_added_showcase += 1 
      else
        @entry.view_in_showcase = true
        @entry.save
        entry_removed_showcase += 1 
      end
end
redirect_to :back, :notice => "#{entry_added_showcase} Desings added, #{entry_removed_showcase} Designs removed."

您將需要在塊范圍之外定義變量,如下所示:

entry_added_showcase = 0
entry_removed_showcase = 0
arr_showcase.each do |entry|
      @entry = ContestEntry.find_by_id(entry)
      if @entry.view_in_showcase == true
        @entry.view_in_showcase = false
        @entry.save
        entry_added_showcase += 1 
      else
        @entry.view_in_showcase = true
        @entry.save
        entry_removed_showcase += 1 
      end
end
redirect_to :back, :notice => "#{entry_added_showcase} Desings added, #{entry_removed_showcase} Designs removed."

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM