【问题标题】:Create a dictionary as an attribute in FactoryGirl在 FactoryGirl 中创建字典作为属性
【发布时间】:2012-06-19 17:05:56
【问题描述】:

Factory Girl 允许执行以下操作:

FactoryGirl define 
  factory :post do
    content  "some content"
    styles   "styles here"
    team     1
  end
end

但是,如果我在工厂块内尝试以下操作:

  factory :post do
    content  "some content"
    styles   "styles here"
    team     1
    my_dictionary {'a' => 1, 'b' => 2}
  end

my_dictionary 不会被解释为字典类型。我不知道如何将字典作为 FactoryGirl 中的属性。谁能帮我 ?

【问题讨论】:

    标签: ruby-on-rails testing rspec factory-bot


    【解决方案1】:

    您观察到的问题来自 Ruby 中的语法歧义。该语言使用花括号来定义散列(您称为字典)以及块(例如,在使用 each 循环时)。由于您现在使用散列作为 my_dictionary 方法的唯一参数,因此解析器不清楚该左大括号是解释为块的开始还是散列。在这种情况下,Ruby 默认采用块假设。

    要将解释强制作为方法参数,您可以像这样使用括号:

    my_dictionary({'a' => 1, 'b' => 2})
    

    然后,可以毫无歧义地解析该语句。您在这里看到的只是您不能轻易省略方法调用的括号的极少数情况之一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-08
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 2016-05-14
      • 1970-01-01
      相关资源
      最近更新 更多