我正在使用Sinatra创建一个站点,一切进展顺利,或者直到我需要访问块中的params[]哈希值before.
基本上,我正在尝试这样做:
before do
if params[:forum_id]
@forum = Forum.find(params[:forum_id])
build_breadcrumbs(@forum.parents)
# ... more code, snipped to keep it short
end
end
Run Code Online (Sandbox Code Playgroud)
但问题是,我不能params[]在before块中调用哈希,有没有人有任何想法?
我把这个代码放在before块中的原因是因为我不想把它放在每个页面的每个块get和post块中.
来自文档:
在与路由相同的上下文中的每个请求之前评估过滤器之前,可以修改请求和响应.
由于这发生在实际请求之前,因此您无法访问请求参数.你可以做的是将重复的代码放入一个方法中并在你的路由块中调用它.