我必须在两个日期之间做一个简单的区别:
Date.parse("2009-06-20") - Date.today
Run Code Online (Sandbox Code Playgroud)
这给了我几天的日期差异.
任何人都知道一种方法可以轻松地将其转换为以下格式:
The event occurred X years, Y months and Z days ago
Run Code Online (Sandbox Code Playgroud)
谢谢.
在我的应用程序中,我有一个名为Budget的类.预算可以是多种类型.例如,假设有两个预算:FlatRateBudget和HourlyRateBudget.两者都继承自预算班.
这是我到目前为止所得到的:
class Budget < ActiveRecord::Base
validates_presence_of :price
end
class FlatRateBudget < Budget
end
class HourlyRateBudget < Budget
validates_presence_of :quantity
end
Run Code Online (Sandbox Code Playgroud)
在控制台中,如果我这样做:
b = HourlyRateBudget.new(:price => 10)
b.valid?
=> false
b.errors.full_messages
=> ["Quantity can't be blank"]
Run Code Online (Sandbox Code Playgroud)
正如所料.
问题是STI上的"类型"字段来自params ..所以我需要做类似的事情:
b = Budget.new(:type => "HourlyRateBudget", :price => 10)
b.valid?
=> true
Run Code Online (Sandbox Code Playgroud)
这意味着rails在超类中运行验证,而不是在我设置类型后实例化子类.
我知道这是预期的行为,因为我正在实例化一个不需要数量字段的类,但我想知道是否还有告诉rails运行子类的验证而不是super.
validation activerecord ruby-on-rails single-table-inheritance
我读过一篇关于Web可用性的文章(不记得/找不到哪里),描述了何时使用下拉菜单以及何时使用自动填充字段.
基本上,文章说人类大脑不能存储超过最后五个选项供选择.
例如,在一个配置文件表单中,当前的职业存在,系统为您提供了一系列选项,当您阅读第六个选项时,您的大脑将不再记住第一个选项.这个例子是一个使用自动填充字段的好地方,用户输入他认为是他职业的东西,然后从过滤的几个选项中选择更好的东西.
我想听听你对这个问题的看法.
我应该何时使用下拉列表以及何时使用自动填充字段?
我是Python的新手,但我曾经和Ruby一起工作.
我正在尝试用Python做一些测试,但我无法弄清楚我是如何为我的测试模拟一个类.
假设我有这个真正的课程:
from database import DB
class Foo:
def do_it(self):
x = {'key': 'value'}
DB.save(x)
# do other stuff with x
return x
Run Code Online (Sandbox Code Playgroud)
现在,我想测试我用x做的所有事情是否给我正确的结果,我想测试是否用x作为参数调用DB.save,但我不想将x实际保存到数据库.要查看是否正在调用DB.save,我可以使用一些模拟框架,但是如何告诉Foo类我需要它来使用模拟对象而不是真正的数据库对象?
谢谢.
编辑: 对不起,我的例子不足以完成我需要完成的任务.
让我们看看这个新例子:
from database import DB
class Foo:
DB.connect()
def do_it(self):
x = {'key': 'value'}
DB.save(x)
# do other stuff with x
return x
Run Code Online (Sandbox Code Playgroud)
例如,假设数据库已关闭.
当我导入Foo时,它会引发连接错误,我没有时间模拟DB.
我该怎么办??
activerecord ×1
autocomplete ×1
combobox ×1
python ×1
ruby ×1
testing ×1
usability ×1
validation ×1