我有一个数组,@genres
,我从查询sinatra服务器上的数据库得到。我使用此类型列表填充导航栏中的下拉菜单。我希望这个列表可用于我去的每个页面,并且我还希望每次更新列表,以防在页面加载之间将新类型添加到数据库中。
显然,我可以添加运行SQL查询的代码,并为每个@genre
,get
和post
方法填充delete
变量,但这似乎很多重复的代码。是否有更优雅的方法来创建所有sinatra http方法共有的变量?
答案 0 :(得分:3)
尝试使用之前的过滤器:
before do
@genres ||= Genre.all # or however you access the array
end
如果您想要忽略put
个变量请求,请为此定义条件:
set :method do |method|
condition do
method.include? request.request_method.downcase.to_sym
end
end
然后你可以这样做:
before :method => [:get, :post, :delete] do
@genres ||= Genre.all
end