如何将 transient 的默认值设置为 hash?
How can I set default value of transient to hash?
我正在尝试创建具有瞬态属性的工厂,当我将其默认值设置为散列时,出现了一些语法错误:
FactoryGirl.define do
factory :event do
transient do
location {city: nil, state: nil, country: "Polska"}
end
name "MyString"
start_date Date.today+2
start_time "17:40"
location_raw "MyLocation"
description "MyText"
website "MyString"
after(:create) do |event, evaluator|
Location.find_or_create_by(evaluator.location).events << event
end
end
end
当我设置为nil
时,它工作正常。
transient do
location nil
end
我做错了什么?
错误是:
/home/marcin/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:268:in `load': /home/marcin/Projects/StreetballKalendarz.pl/spec/factories/events.rb:4: syntax error, unexpected ':', expecting '}' (SyntaxError)
location {city: nil, state: nil, country: "Polska"}
^
/home/marcin/Projects/StreetballKalendarz.pl/spec/factories/events.rb:4: Can't assign to nil
location {city: nil, state: nil, country: "Polska"}
^
/home/marcin/Projects/StreetballKalendarz.pl/spec/factories/events.rb:4: Can't assign to nil
location {city: nil, state: nil, country: "Polska"}
厂妹牙套间评价。所以我认为你需要第二组来让它理解它是一个散列
location { { city: nil, state: nil, country: "Polska" } }
我正在尝试创建具有瞬态属性的工厂,当我将其默认值设置为散列时,出现了一些语法错误:
FactoryGirl.define do
factory :event do
transient do
location {city: nil, state: nil, country: "Polska"}
end
name "MyString"
start_date Date.today+2
start_time "17:40"
location_raw "MyLocation"
description "MyText"
website "MyString"
after(:create) do |event, evaluator|
Location.find_or_create_by(evaluator.location).events << event
end
end
end
当我设置为nil
时,它工作正常。
transient do
location nil
end
我做错了什么?
错误是:
/home/marcin/.rvm/gems/ruby-2.2.2/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:268:in `load': /home/marcin/Projects/StreetballKalendarz.pl/spec/factories/events.rb:4: syntax error, unexpected ':', expecting '}' (SyntaxError)
location {city: nil, state: nil, country: "Polska"}
^
/home/marcin/Projects/StreetballKalendarz.pl/spec/factories/events.rb:4: Can't assign to nil
location {city: nil, state: nil, country: "Polska"}
^
/home/marcin/Projects/StreetballKalendarz.pl/spec/factories/events.rb:4: Can't assign to nil
location {city: nil, state: nil, country: "Polska"}
厂妹牙套间评价。所以我认为你需要第二组来让它理解它是一个散列
location { { city: nil, state: nil, country: "Polska" } }