小编Cas*_*sey的帖子

Rails 单表继承 (STI) 的替代方案?

我有一个模型和表格,我相信它非常适合 STI。我的表名为Finances“收入”和“支出”,有两种类型。除此之外,type还有其他三列:descriptionamountdate

我对在 Rails 中使用 STI 感到非常紧张,因为它需要一些技巧。我对 Rails 太陌生,无法修改代码。尽管它有效,但我不明白它。这看起来很危险。

我的问题是,如果我不使用 STI,如何设置我的模型、控制器和视图?在我的模型中对项目进行分组的最佳实践是什么?Finances.where("type = 'Income'")或者我只是在设置视图之前做?

编辑:我提出了一个要点来展示我正在使用的代码。当我运行它时,我收到错误:

undefined method `incomes_path' for #<#<Class:0x007fbc95f60b40>:0x007fbc93883220>
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails sti

3
推荐指数
1
解决办法
2472
查看次数

在python中模拟redis

我正在尝试模拟 redis 以启用对在 Django 中构建的 python 应用程序的测试。我的所有 Redis 实例都来自名为 record 的模块,其init .py 文件包含:

redis_client = redis.from_url(os.environ.get("REDIS_URL"))
Run Code Online (Sandbox Code Playgroud)

我尝试使用mockredis修补实例,但它不起作用。这是模式代码:

class TestReleaseDashboard(TestCase):
    def setUp(self):

        # patch redis
        redis_patcher = patch('record.redis_client', mock_redis_client())
        self.redis = redis_patcher.start()
        self.addCleanup(redis_patcher.stop)

        # add data
        self.redis.set('LATEST_UPDATE', 'Fall 2012')
        self.redis.set('NEXT_UPDATE', 'Spring 2013')

    def test_can_filter_pensions(self):
        print(redis_client)
        print(self.redis)
Run Code Online (Sandbox Code Playgroud)

这两个打印语句的结果是:

Redis<ConnectionPool<Connection<host=localhost,port=6379,db=0>>>
<mockredis.client.MockRedis object at 0x1132924d0>
Run Code Online (Sandbox Code Playgroud)

我可以做什么来解决这个问题并模拟实例?

python testing mocking redis

3
推荐指数
1
解决办法
9068
查看次数

用逗号分割字符串,但忽略括号内的逗号

我正在尝试使用 python 用逗号分隔字符串:

s = "year:2020,concepts:[ab553,cd779],publisher:elsevier"
Run Code Online (Sandbox Code Playgroud)

但我想忽略括号 [] 内的任何逗号。所以上面的结果将是:

["year:2020", "concepts:[ab553,cd779]", "publisher:elsevier"]
Run Code Online (Sandbox Code Playgroud)

有人对如何做到这一点有建议吗?我尝试像这样使用 re.split :

params = re.split(",(?![\w\d\s])", param)
Run Code Online (Sandbox Code Playgroud)

但它无法正常工作。

python regex

3
推荐指数
1
解决办法
2119
查看次数

覆盖内联CSS样式

我正在使用Twitter的预先输入脚本来使用我的搜索表单进行自动提示.但是,该脚本会生成自己的CSS样式,我似乎无法覆盖它.你可以在这里看到问题:http://bahcalculator.org/dev/nano.php.我尝试在样式表中创建样式.tt-hint的副本,但内联样式覆盖了它.我如何让.tt-hint继承我表单中的样式?

css twitter-bootstrap

2
推荐指数
1
解决办法
1355
查看次数

在Mac OSX上启用TLS 1.2

我想把我的头发拉出来试图让我的本地机器上运行Stripe的Django应用程序与OSX 10.12.3.我尝试运行测试付款时遇到的错误是:

/ register上的PermissionError请求req_ADIwntj3xGaqUF:Stripe不再支持使用TLS 1.0发出的API请求.请使用TLS 1.2或更高版本启动HTTPS连接.您可以访问https://stripe.com/blog/upgrading-tls了解有关此内容的更多信息 .

我使用brew成功升级了openssl.当我运行openssl version输出时是:

OpenSSL 1.0.2k  26 Jan 2017
Run Code Online (Sandbox Code Playgroud)

当我运行which openssl输出时是:

/usr/local/opt/openssl/bin/openssl
Run Code Online (Sandbox Code Playgroud)

我找到了关于堆栈溢出的说明,据说可以运行brew link --force openssl.当我这样做时,错误是:

警告:拒绝链接:openssl链接keg-only openssl意味着在使用Homebrew的openssl的头文件时,你最终可能会链接到不安全的,已弃用的系统OpenSSL.相反,将完整的include/library路径传递给编译器,例如:
-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib

任何人都可以帮我搞定这个吗?

django macos ssl tls1.2

2
推荐指数
1
解决办法
9721
查看次数

标签 统计

python ×2

css ×1

django ×1

macos ×1

mocking ×1

redis ×1

regex ×1

ruby-on-rails ×1

ssl ×1

sti ×1

testing ×1

tls1.2 ×1

twitter-bootstrap ×1