मैं अपने फैक्टरीगर्ल कारखानों में से किसी एक में उपयोग के लिए एक सामान्य विधि कैसे परिभाषित कर सकता हूं? उदाहरण के लिए:मैं फैक्टरीगर्ल फैक्ट्री पर एक विधि कैसे परिभाषित कर सकता हूं?
FactoryGirl.define do
def silly_horse_name
verbs = %w[brunches dribbles haggles meddles]
nouns = %w[landmines hamlets vandals piglets]
"#{verbs.sample} with #{nouns.sample}".titleize
end
factory :racehorse do
name { silly_horse_name } # eg, "Brunches with Landmines"
after_build do |horse, evaluator|
puts "oh boy, I built #{silly_horse_name}!"
end
end
end
यह इस तरह से सब पर silly_horse_name
फोन नहीं करता है करना; अगर इसे raise 'hey!'
पर फिर से परिभाषित किया गया है, तो कुछ भी नहीं होता है।
मैं फैक्टरीगर्ल 2.5.2 का उपयोग कर रहा हूं।
यह काम करता है। यह वैश्विक नामस्थान में जा रहा है, लेकिन यह केवल परीक्षण पर्यावरण में परिभाषित है, और यदि नाम पर्याप्त अद्वितीय है, तो इससे कोई फर्क नहीं पड़ता। –
मुझे यह समाधान बिल्कुल पसंद नहीं है, लेकिन कोशिश की और एक और समाधान नहीं मिला। मुझे इसके बारे में सबसे ज्यादा भ्रमित करने वाला यह है कि [एफजी दस्तावेज] (https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md#callbacks) का अर्थ यह है कि इस उदाहरण का उपयोग करके यह संभव है: 'after (: build) {| उपयोगकर्ता | do_something_to (उपयोगकर्ता)} ' –