Ruby on rails 帮助我理解railstutorial.org(关于Factory Girl的部分)中的语法

Ruby on rails 帮助我理解railstutorial.org(关于Factory Girl的部分)中的语法,ruby-on-rails,factory-bot,railstutorial.org,Ruby On Rails,Factory Bot,Railstutorial.org,我在,作者开始越来越少地解释课程的语法和细节 我不理解他在使用Factory Girl创建用户时使用的以下语法: Factory.define :user do |user| user.name "Michael Hartl" user.email "mhartl@example.com" user.password "foobar" user.password_confirmation

我在,作者开始越来越少地解释课程的语法和细节

我不理解他在使用Factory Girl创建用户时使用的以下语法:

 Factory.define :user do |user|
  user.name                  "Michael Hartl"
  user.email                 "mhartl@example.com"
  user.password              "foobar"
  user.password_confirmation "foobar"
end
我没有复制和粘贴代码,因此最初,在阅读之后,我编写了如下代码:

user.name = 'Michael Hartl'
etc
测试没有运行。在重新阅读该部分之后,我发现作者没有使用=。这是什么意思?如果我理解正确,Factory girl将创建一个User实例,然后为其分配这些属性。那么user.name='whatever'怎么不正确呢


我真的很讨厌在做教程的时候不理解东西,所以我被困在这里直到我理解它…

这是ruby块语法,你可以在rails中找到它。以您的迁移为例。让您困惑的是赋值的语法以及括号/大括号在ruby中(通常)是可选的。这允许更可读的代码,否则可能是:

 Factory.define :user do |user|
  user.name("Michael Hartl")
  user.email("mhartl@example.com")
  user.password("foobar")
  user.password_confirmation("foobar")
end

这:
user.name='Michael Hartl'
不起作用,因为Factory Girl选择了不同的语法,即:
user.name“Michael Hartl”
。我想你必须接受这样的工作方式。如果您想知道为什么要问。

我熟悉积木,谢谢。正如你所说,我只是被作业部分弄糊涂了。我想了想,但是,标准的赋值语法(user.name='something')不应该工作吗?“这不是……”扎克,你什么意思?我不明白你的评论。我想说的是,创建者选择了以下语法:
user.name“Michael Hartl”
。而不是:
user.name=“Michael Hartl”
。我在哪里说有什么不对???有人能解释一下这个答案有什么不对吗??我不关心rep,我想知道它有什么问题。这本书的作者正确地写出了语法。海报没有。是的,我就是这么说的!