我了解工厂女孩,我看到这样的代码:
factory :post do
association :author, factory: :user, last_name: "Writely"
end
为什么factory
和last_name
都在其末尾有一个冒号?
我了解工厂女孩,我看到这样的代码:
factory :post do
association :author, factory: :user, last_name: "Writely"
end
为什么factory
和last_name
都在其末尾有一个冒号?
在此上下文中结肠表示文字哈希。
factory
是Hash
键:user
就是价值。
另一种选择的语法是:factory => :user
。 它们的意思是一样的。
Ruby的语法1.8:
:factory => :user
Ruby 1.9的语法:
factory: :user
需要注意的是Ruby的语法1.8 1.9中也适用。
其他的答案是正确的。 有关于这背后新语法的基本原理一些猜测。 这种变化可能有一些做的JavaScript,也许还有其他语言如何处理对象的文字符号。 ,需要有人认为,或许,把红宝石更加符合这些语言如何处理对象的创建。
例如,在JavaScript中,我们可以这样做:
var person = {
name: "John",
age: 42,
married: false
}
因此,其实,当我们路过factory: :user
,我们真正做的是通过{factory: :user}
,也可以写成{:factory => :user}
。 1.9语法的目的是使其更容易做类似{factory: "user"}