2014-03-03 69 views
1

我想在包含連字符的字段名稱的模型上創建一個工廠,但我無法弄清楚允許連字符的語法。我正在使用Mongoid。在字段名稱中使用連字符定義工廠

#model.rb 
class MyModel 
    include Mongoid::Document 

    field :field1 
    field :"data-field2" 
    field :"data-field3" 
end 



#factories/my_model.rb 
FactoryGirl.define do 
    factory :my_model do 
    field1 'some text' 
    data-field2 'some_element_classname' 
    data-field2 'some_other_element_classname' 
    end 
end 

我得到這個錯誤

unexpected tSTRING_BEG, expecting keyword_do or '{' or '(' (SyntaxError) 

任何人都知道如何解決這個問題?

+0

可以嘗試使用'send'?即「發送」data-field2「some_element_classname」等。 –

回答

2

FactoryGirl::DefinitionProxy定義method_missing使用缺少方法的名字來稱呼add_attribute,所以你應該能夠子,在代替:

FactoryGirl.define do 
    factory :my_model do 
    field1 'some text' 
    add_attribute(:"data-field2", 'some_element_classname') 
    add_attribute(:"data-field3") { # add_attribute with block } 
    end 
end 
+0

BINGO!謝謝Zack。 – SteveO7

相關問題