2016-08-27 5 views
0

私はseeds.rbファイルにいくつかのシードデータを持っています。'rake routes'コマンドで、工場内のrake db:seedコマンドも実行されているのはなぜですか?

rake db:seedを使用してシードデータをロードします。それは正しくロードされます。

アプリケーションに新しいデータを入力しても問題ありません。

次に、ルートをチェックするために 'rake routes'コマンドを実行し、seeds.rbファイルからの出力を見ることができるのでrake db:seedコマンドを実行することがわかります。

ここに私のseeds.rbファイルされる:

#Seeding the Role table 
# 
p "Removing existing #{Role.all.count} roles" 
Role.destroy_all 
p "Creating 3 roles" 
[:proofreader, :admin, :super_admin].each do |role| 
    Role.create(name: role) 
end 
p "Should have created 3 Roles, roles created: #{Role.all.count}" 

#Seed the Employee table 

#create super_admin employee 
p "Removing existing #{Employee.all.count} employees" 
Employee.destroy_all 
p "Creating one employee" 

super_admin = Employee.new(first_name: "Mitchell", last_name: "Gould", email: "[email protected]", paypal_email: "[email protected]", skype_id: "chellgouda", mobile: 66816927867, bachelor_degree: "Science", password: "chokta400",postal_code: "50100",address: "211/195 Soi 27, Sriwalee Klong Chun, T. Mae Hia, A. Muang", province_state: "Chiangmai", country: "Thailand", status: "active", os: "mac", role_ids: [Role.last.id]) 
super_admin.save! 

p "Should have created #{Employee.all.count} employee with name #{Employee.first.first_name}." 

ここでは私の工場である:ここでは

require 'faker' 

Rails.application.load_seed 


FactoryGirl.define do 
    factory :employee do 
    first_name { Faker::Name.first_name} 
    last_name { Faker::Name.last_name} 
    sequence(:email) { |n| "peterjohnson#{n}@example.com" } 
    mobile 66816927867 
    bio "MyText" 
    address { Faker::Address.street_address} 
    province_state { Faker::Address.state} 
    country { Faker::Address.country} 
    postal_code { Faker::Address.postcode} 
    status :active 
    bachelor_degree "B.Sc" 
    password Faker::Internet.password(8) 
    sequence(:paypal_email) { |n| "paypal_peterJohnson#{n}@example.com" } 
    sequence(:skype_id) {|n| "peterjohnson_skype#{n}" } 
    os :mac 
    role_ids [Role.first.id] 

    trait :proofreader do 
     after(:create) {|employee| employee.add_role(:proofreader)} 
    end 

    trait :admin do 
     after(:create) {|employee| employee.add_role(:admin)} 
    end 

    trait :super_admin do 
     after(:create) {|employee| employee.add_role(:super_admin)} 
    end 
    end 
end 

はすくい路線から出力された:

Running via Spring preloader in process 17957 
"Removing existing 3 roles" 
"Creating 3 roles" 
"Should have created 3 Roles, roles created: 3" 
"Removing existing 2 employees" 
"Creating one employee" 
"Should have created 1 employee with name Mitchell." 
         Prefix Verb URI Pattern       Controller#Action 
     new_employee_session GET /employees/sign_in(.:format)   devise/sessions#new 
      employee_session POST /employees/sign_in(.:format)   devise/sessions#create 
    destroy_employee_session GET /employees/sign_out(.:format)   devise/sessions#destroy 
      employee_password POST /employees/password(.:format)   devise/passwords#create 
     new_employee_password GET /employees/password/new(.:format)  devise/passwords#new 
     edit_employee_password GET /employees/password/edit(.:format)  devise/passwords#edit 
          PATCH /employees/password(.:format)   devise/passwords#update 
          PUT /employees/password(.:format)   devise/passwords#update 
cancel_employee_registration GET /employees/cancel(.:format)   employees/registrations#cancel 
     employee_registration POST /employees(.:format)     employees/registrations#create 
    new_employee_registration GET /employees/sign_up(.:format)   employees/registrations#new 
    edit_employee_registration GET /employees/edit(.:format)    employees/registrations#edit 
          PATCH /employees(.:format)     employees/registrations#update 
          PUT /employees(.:format)     employees/registrations#update 
          DELETE /employees(.:format)     employees/registrations#destroy 
      new_client_session GET /clients/sign_in(.:format)    devise/sessions#new 
       client_session POST /clients/sign_in(.:format)    devise/sessions#create 
     destroy_client_session GET /clients/sign_out(.:format)   devise/sessions#destroy 
      client_password POST /clients/password(.:format)   devise/passwords#create 
     new_client_password GET /clients/password/new(.:format)  devise/passwords#new 
     edit_client_password GET /clients/password/edit(.:format)  devise/passwords#edit 
          PATCH /clients/password(.:format)   devise/passwords#update 
          PUT /clients/password(.:format)   devise/passwords#update 
    cancel_client_registration GET /clients/cancel(.:format)    devise/registrations#cancel 
     client_registration POST /clients(.:format)      devise/registrations#create 
    new_client_registration GET /clients/sign_up(.:format)    devise/registrations#new 
    edit_client_registration GET /clients/edit(.:format)    devise/registrations#edit 
          PATCH /clients(.:format)      devise/registrations#update 
          PUT /clients(.:format)      devise/registrations#update 
          DELETE /clients(.:format)      devise/registrations#destroy 
      quotation_requests GET /quotation_requests(.:format)   quotation_requests#index 
          POST /quotation_requests(.:format)   quotation_requests#create 
     new_quotation_request GET /quotation_requests/new(.:format)  quotation_requests#new 
     edit_quotation_request GET /quotation_requests/:id/edit(.:format) quotation_requests#edit 
      quotation_request GET /quotation_requests/:id(.:format)  quotation_requests#show 
          PATCH /quotation_requests/:id(.:format)  quotation_requests#update 
          PUT /quotation_requests/:id(.:format)  quotation_requests#update 
          DELETE /quotation_requests/:id(.:format)  quotation_requests#destroy 
       show_dashboard GET /dashboard(.:format)     dashboard#show 
         root GET /

私はどのように停止することができますrakeルートを実行すると、Railsは工場でシードデータを再実行しませんか?

答えて

0

テストモードでコマンドを実行することは、私は私の宝石ファイルで私の開発グループでFactoryGirlを持っていることが判明しました。私がrake db:seedを実行したときにseeds.rbファイルがロードされていないテスト専用グループに移動したら、

0

これはSpringの問題です。 Springを停止し、rake routesタスクを再実行してみてください。

bundle exec spring stop 
bundle exec rake routes 
+0

私は春を止め、レーキルートを再実行しました。まだseeds.rbを実行しています。 – chell

+0

私は、私がこのラインを持っていることを発見しました:Rails.application.load_seedは私の工場の中にあります。それを削除してrakeルートを実行すると、seeds.rbファイルは実行されません。ですから、私がレーキルートを作ったときに工場のこのコマンドがなぜ動くのかを知るために質問が更新されました。ご協力いただきありがとうございます。 – chell

0

これが完璧な解決策であるかどうかはわかりませんが、それは私にとってはうまくいきました。

私はちょうどのみに以下を追加

Rails.application.load_seed if Rails.env.test? 
関連する問題