2017-03-13 1 views
-3

대신 블록의 모든 메소드 호출에 매개 변수를 보내기 :는 일의

calc(a: 1, b: 2, c: 3) 
calc(a: 1, b: 2, c: 10) 
calc(a: 1, b: 2, c: 2) 
calc(a: 1, b: 2, c: 103) 
calc(a: 1, b: 2, c: 98) 

내가 할 것 :

with_parameters(a: 1, b: 2) do 
    calc(c: 3) 
    calc(c: 10) 
    calc(c: 2) 
    calc(c: 103) 
    calc(c: 98) 
end 

상황에 내가 FactoryGirl, 예를 들어,이 작업을 수행하기 위해 노력하고있어입니다 유사한 공장

편집를 많이 만들 : 사실 나는

공장 소녀에 대한

답변

1

은, 어떤 화려한 트릭을위한 필요가 없습니다 몇 가지 method_missing + send이 할 수있는 확신

let(:base_params) { { a: 1, b: 2} } 

let(:things) { 
    [3, 10, 2].map do |c| 
    create(:whatever, base_params.merge(c: c)) 
    end 
}