我项目的一个资源有一个属性1.story(整数),2.start(date_time)和3.end(date_time)。现在问题是我无法为测试用例创建此资源的工厂。原因是'结束'关键词。我想要像...这样的东西。
FactoryGirl.define do
factory :my_factory do
story "My story"
start '2013-12-09 14:48:29 +0530'
end Time.now
end
end
这就是我想使用结束关键字作为变量的原因。提前谢谢。
答案 0 :(得分:5)
你不能和真的不应该使用ruby关键字作为方法名称。
您可以使用其他字词,例如暂停或停止。
答案 1 :(得分:2)
无法将“结束”更改为不是Ruby关键字的内容。如果您要更改此关键字的定义,则所有其他代码都会失败,因为无论何时使用它,它都会绑定到此关键字。所以即使你的项目很大:更改名称是更快的,而不是说你只有选择!
答案 2 :(得分:0)
我知道这是一个旧线程,但想把我的帽子扔进戒指
你可以做到
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