Ruby on rails 轨道块范围
我想计算此块中的条目数。由于ruby块变量作用域,我不处理此代码。有什么方法可以解决此问题吗Ruby on rails 轨道块范围,ruby-on-rails,ruby,Ruby On Rails,Ruby,我想计算此块中的条目数。由于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
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."
您在哪里声明了添加的
条目\u showcase
和删除的条目\u 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."
我想计算块中的条目数,并在块后使用它们