Rails上的敏捷开发:有人可以解释这种语法吗? image_url:fred.gif)

时间:2012-10-12 13:26:57

标签: ruby-on-rails ruby-on-rails-3.2

新手问题:

在这个测试中:

test "product is not valid without a unique title -il8n" do
      product = Product.new(title: products(:ruby).title),
      description: "yyy",
      price: 1,
      image_url: "fred.gif")
    end

“fred.gif”之后为什么会出现“)”(右括号)?没有左括号,所以我不理解它周围的逻辑。找不到任何关于为什么的参考。

1 个答案:

答案 0 :(得分:2)

对我来说看起来像是一个错误,它的语法无效:

$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
$ ruby -c /tmp/test.rb
/tmp/test.rb:3: syntax error, unexpected tLABEL
      description: "yyy",
                  ^
/tmp/test.rb:3: syntax error, unexpected ',', expecting keyword_end
/tmp/test.rb:5: syntax error, unexpected ')', expecting keyword_end

我猜这行

product = Product.new(title: products(:ruby).title),

应该阅读

product = Product.new(title: products(:ruby).title,

如此重新格式化,测试将如下所示:

test "product is not valid without a unique title -il8n" do
  product = Product.new(
    title: products(:ruby).title,
    description: "yyy",
    price: 1,
    image_url: "fred.gif"
  )
end

(虽然测试描述与行为不符; - ))