【问题标题】:Remove controller in some environment in grails在grails的某些环境中删除控制器
【发布时间】:2013-09-02 07:46:40
【问题描述】:

我做了一些控制器,但他只在测试环境中有目的,我想知道是否有一些优雅的方法可以根据环境插入或关闭他? ...

具体来说,我必须在测试环境中删除一些数据库表,并且必须来自 API,因为它用于功能测试,所以我必须为此创建控制器/服务。当然,出于安全原因,我不想在生产环境中使用此控制器:D

感谢您的任何建议!

伊万

【问题讨论】:

    标签: grails controller


    【解决方案1】:

    不确定它是否足够优雅,但您可以在不同于 TEST 的环境中为该控制器添加重定向到 404 页面的 url 映射:

    conf/UrlMappings.groovy

    static mappings = {
    
        // ...
    
        if (Environment.current != Environment.TEST) {
            '/testcontrollername'(view: '/404page')
        }
    }
    

    可以做的另一件事是在归档构建之前从 WAR 目录中删除控制器类。当然,这只有在使用 WAR 部署时才有效。

    【讨论】:

    • 相反,仅在 TEST 环境中映射到控制器怎么样??
    • 这是个好主意,但它不起作用。我无法在 if 子句中设置 url 映射:/
    • 为什么会这样?我这样做了很多次。据我所知,UrlMappings.groovy 中的 if 语句没有问题。
    • 我不明白......它只是不识别映射然后什么也没有发生,当我把它放在外面如果它工作......我已经把 if 子句放在控制器本身和它在那里工作......这不是最优雅的解决方案,但我可以忍受:)
    • 我不确定现在有什么问题。这是 Grails 示例github.com/grails-samples/grails-website/blob/master/grails-app/… 中的一些内容,并且在 UrlMappings 中有“if”语句。它必须有效,这一点毫无疑问。您能否发布您的 UrlMappings.groovy 以及您尝试测试它的步骤?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 2023-03-23
    • 1970-01-01
    • 2018-11-22
    • 2016-03-19
    • 1970-01-01
    • 2012-01-19
    相关资源
    最近更新 更多