Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


2 questions online user: 10

0
votes
answers
32 views
+10

工廠女孩保留字屬性的關聯

0

工廠女孩文檔建議使用ADD_ATTRIBUTE方法來處理屬於保留字的屬性,具體如下:工廠女孩保留字屬性的關聯

factory :dna do 
    add_attribute(:sequence) { 'GATTACA' } 
end 

但是我有一個名爲特質(這是保留的)模型稱爲ContestantTrait的另一種模型,屬於Trait。我試着用不同的方式使用add_attribute來避免關聯中的保留字問題,但似乎沒有任何工作。

有什麼建議嗎?這是到目前爲止,我已經試過格式:

FactoryGirl.define do 
    factory :contestant_trait do 
    add_attribute(:trait) 
    add_attribute(:trait) {} 
    add_attribute(:trait) {trait} 
    end 
end 
+0

你可以使用新名稱來保留保留字,你應該沒問題。 –

沙发
0
0

沒有必要界定,因爲:trait:add_attribute是一個關聯。使用關鍵字association如下:

FactoryGirl.define do 
    factory :contestant_trait do 
    association :trait 
    # ... other attributes 
    end 
end 

作爲一個側面說明,建議升級到FactoryBot

由於兩個factory_girl和factory_girl_rails的4.9.0版本中,無論是寶石會正式棄用。在4.9.0版本中。

看到這個職位https://robots.thoughtbot.com/factory_bot更多的形成和如何升級。

+0

你能解決你的問題與上述解決方案? – s3tjan

0
votes
answers
46 views
+10

如何在嵌套上下文中使用`let`和`create`時不重複編寫相同的屬性?

0

我有一個Rspec的測試使用FactoryBot(FactoryGirl)如下:如何在嵌套上下文中使用`let`和`create`時不重複編寫相同的屬性?

describe Note do 
    let(:note) {create(:note, title: "my test title", body: "this is the body")} 

    expect(note.title).to eq "my test title" 
    expect(note.body).to eq "this is the body" 

    context "with many authors" do 
    let(:note) {create(:note, :many_authors, title: "my test title", body: "this is the body")} 
    it "has same title and body and many authors" do 
     expect(note.title).to eq "my test title" 
     expect(note.body).to eq "this is the body" 
     expect(note.authors.size).to eq 3 
    end 
    end 
end 

在該試驗中我有初始:note與標題和主體。在嵌套的上下文中,我想使用相同的note,但只需添加我的:many_authors特徵。但是,我發現自己不得不復制和粘貼前一個註釋中的屬性title: "my test title", body: "this is the body",所以我想知道幹掉代碼的最佳方法是什麼,所以我不必總是複製和粘貼標題和主體屬性。什麼是正確的方法來做到這一點?