我的项目的一个资源有一个属性1.story(integer)、2.start(date_time)和3.end(date_ttime)。现在的问题是我不能为这个资源创建测试用例的工厂。原因是"结束"这个关键词。我想要。。。
FactoryGirl.define do
factory :my_factory do
story "My story"
start '2013-12-09 14:48:29 +0530'
end Time.now
end
end
这就是为什么我想使用结束关键字作为变量。提前谢谢。
您不能而且真的不应该使用ruby关键字作为方法名。
您还可以使用其他单词,如halt或stop。
没有办法将"end"更改为非Ruby关键字。如果你要更改这个关键字的定义,所有其他代码都会失败,因为无论何时使用它,它都会绑定到这个关键字。因此,即使你的项目很大:更改名称是更快的,更不用说你只有ONLY选项!
我知道这是一条老线索,但我想把我的帽子扔到的戒指上
你可以做
FactoryGirl.define do
factory :my_factory do
{
"story" => "My story",
"start" => "2013-12-09 14:48:29 +0530",
"end" => Time.now
}
end
end
这将帮助你避免使用end关键字,你可能只需要在计划使用工厂的任何时候覆盖它,或者你可以尝试将上面的哈希转换为特征
FactoryGirl.define do
trait :my_factory do
example_attribute do
{
"story" => "My story",
"start" => "2013-12-09 14:48:29 +0530",
"end" => Time.now
}
end
end
end