我有一个模型和表格,我相信它非常适合 STI。我的表名为Finances“收入”和“支出”,有两种类型。除此之外,type还有其他三列:description、amount和date。
我对在 Rails 中使用 STI 感到非常紧张,因为它需要一些技巧。我对 Rails 太陌生,无法修改代码。尽管它有效,但我不明白它。这看起来很危险。
我的问题是,如果我不使用 STI,如何设置我的模型、控制器和视图?在我的模型中对项目进行分组的最佳实践是什么?Finances.where("type = 'Income'")或者我只是在设置视图之前做?
编辑:我提出了一个要点来展示我正在使用的代码。当我运行它时,我收到错误:
undefined method `incomes_path' for #<#<Class:0x007fbc95f60b40>:0x007fbc93883220>
Run Code Online (Sandbox Code Playgroud) 我正在尝试模拟 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 用逗号分隔字符串:
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)
但它无法正常工作。
我正在使用Twitter的预先输入脚本来使用我的搜索表单进行自动提示.但是,该脚本会生成自己的CSS样式,我似乎无法覆盖它.你可以在这里看到问题:http://bahcalculator.org/dev/nano.php.我尝试在样式表中创建样式.tt-hint的副本,但内联样式覆盖了它.我如何让.tt-hint继承我表单中的样式?
我想把我的头发拉出来试图让我的本地机器上运行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
任何人都可以帮我搞定这个吗?