现在我认为我有这个:
<div class="test-date-picker">
<input class="test-date-picker-value" ui-mask="99/99/9999"></input>
</div>
我需要在控制器中复制代码的每个方法中定义@categories。
@categories.each do |category|
如何摆脱重复?
答案 0 :(得分:1)
无需定义类或全局变量,因为查询之间的结果可能会更改。 我想添加一些memoization并将副本提取到单独的方法中:
def home
categories
end
def contacts
categories
end
def categories
@categories ||= Category.where(:parent_id => '').order("id").each
end
最好在模型中定义scope
:
class Category < ActiveRecord::Base
scope :categories_without_parent, -> { where(:parent_id => '') }
end
在控制器方法categories
中看起来像:
def categories
@categories ||= Category.categories_without_parent
end