我正在使用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
但问题是,我无法在params[]
区块中调用before
哈希,是否有人有任何想法?
我将此代码放在before
块中的原因是因为我不必将其放在我的get
和post
块中的每一个中每一页。
答案 0 :(得分:6)
来自文档:
在每个请求之前评估过滤器之前 路由将是并且可以修改请求和响应的上下文。
由于这发生在实际请求之前,因此您无法访问请求参数。你可以做的是将重复的代码放入一个方法中并在你的路径块中调用它。
答案 1 :(得分:1)
这不再适用。我刚试过它。您现在可以在{...}
之前访问params