2014-09-29 69 views
0

好了,所以我有模型,我填充我的SQLite數據庫在我seeds.rb這裏是代碼如何在rails中訪問我的數據庫的內容?

〜/元素週期表/ DB/seeds.rb

# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup). 
# 
# Examples: 
# 
# cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }]) 
# Mayor.create(name: 'Emanuel', city: cities.first) 
File.open("pt-data3.csv", 'r').each_line do |line| 
    temp = line.split(',') 
    Element.create(proton: temp[0].strip, symbol: temp[1].strip, name: temp[2].strip, mass: temp[3].strip) 
end 

然後我試圖訪問它的我的RSpec的,我不斷收到爲零,這是我的RSpec

〜/元素週期表/規格/型號/ element_spec.rb

require 'rails_helper' 

RSpec.describe Element, :type => :model do 
    it "should contain the right elements" do 
     expect(Element.find_by(proton: 1)).to include("Hydrogen") 
    end 
end 

然而Element.find_b無論我輸入什麼東西,都會一直返回零。我的數據庫確實存在,因爲我查了。當我在rails console中做Element.find_by時,它工作得很好。我可以正確得到所有的元素在我的rails控制檯但是當我把它放在我的Rails應用的任何Element.find_by總是返回零

這裏也是我的模型類,如果其任何關聯

〜/元素週期表/應用/型號/element.rb

class Element < ActiveRecord::Base 
end 

回答

1

Rails在生產,開發和測試中維護不同的數據庫。這意味着你認爲應該在那裏的數據存在於你的開發數據庫中。如果您想在測試中訪問數據,則需要將其保存在測試環境中。考慮使用FactoryGirl在測試數據庫中創建對象。

+1

或者你也可以運行RAILS_ENV = test rake db:seed – 2014-09-29 03:19:15

相關問題