在某些情况下,在 Rails 3 中使用 respond_with 时,我需要同时拥有模板和返回错误代码。
我有一个前置过滤器,如下所示:
def ensure_premium
respond_with("Must be a premium user!", status: 401, location: nil) unless current_user.is_premium?
end
以及执行以下操作的创建操作:
def create
@wait_list = @hangout.wait_lists.find_or_create_by(user_id: current_user.id)
respond_with(@wait_list) do |format|
format.json {render 'create', status: 201}
end
end
即使之前的过滤器跳闸,它仍然会尝试渲染导致错误的模板。为了让它返回正确的错误和状态代码而不呈现模板,我缺少什么?