sli*_*000 3 ruby rspec fabrication-gem
在下面的示例中,我abbr只想作为的前3个字母,name但得到>>不确定的局部变量name...我猜是因为name超出了{}块的范围?
Fabricator(:team) do
name { Faker::Name.first_name }
abbr { Faker::Name.first_name[0..2] }
league { Fabricate(:league) }
end
Run Code Online (Sandbox Code Playgroud)
我怎样才能abbr只写字母的前三个字母name?
即这引发错误
Fabricator(:team) do
name { Faker::Name.first_name }
abbr { name[0..2] } \\ error name is undefined here
league { Fabricate(:league) }
end
Run Code Online (Sandbox Code Playgroud)
小智 5
您也可以通过在abbr值块中接受属性哈希来实现。
Fabricator(:team) do
name { Faker::Name.first_name }
abbr { |attrs| attrs[:name][0..2] }
league
end
Run Code Online (Sandbox Code Playgroud)
无关,但如果您这样编写,联赛将自动扩展到您在上面指定的位置。