0

已经看过这个堆栈问题,此时我查看了答案中的所有链接。

创建自定义 rake 任务,代码如下所示:

task :seeding do
    op_a = CoverageDetail.create(option: 'a', privacy_and_website_media: 250000.00, privacy_breach_service: 20000,
                    legal_forensic_cost: 25000.00, call_center_service: 'inc', deductible: 5000.00,
                    credit_monitoring_individuals: 20000, fraud_resolution_service: 5000, regulatory_defense: 100000.00,
                    pci_fines_and_costs: 50000.00, crisis_management_and_pr: 50000.00, foreign_notification: 10000.00)

    op_b = CoverageDetail.create(option: 'b', privacy_and_website_media: 500000.00, privacy_breach_service: 25000,
                            legal_forensic_cost: 50000.00, call_center_service: 'inc', deductible: 5000.00,
                            credit_monitoring_individuals: 25000, fraud_resolution_service: 5000, regulatory_defense: 250000.00,
                            pci_fines_and_costs: 50000.00, crisis_management_and_pr: 50000.00, foreign_notification: 10000.00)

    op_c = CoverageDetail.create(option: 'c', privacy_and_website_media: 1000000.00, privacy_breach_service: 50000,
                            legal_forensic_cost: 100000.00, call_center_service: 'inc', deductible: 5000.00,
                            credit_monitoring_individuals: 50000, fraud_resolution_service: 5000, regulatory_defense: 500000.00,
                            pci_fines_and_costs: 50000.00, crisis_management_and_pr: 50000.00, foreign_notification: 10000.00)

    op_a.save!
    op_b.save!
    op_c.save!
end

我有一个名为coverage_details 的表我有一个名为coverage_detail.rb 的模型我有一个名为coverage_details_controller.rb 的控制器。模型中的类名是 CoverageDetail。

问题:为什么我会得到uninitialized constant CoverageDetail

这是我第一次尝试创建自定义 rake 任务来为现有应用程序中的新表播种,或者我只需将此信息添加到我的 db:seed 文件中。

我错过了什么?

4

1 回答 1

5

使用环境给它 rails 环境

task :seeding => :environment do
    op_a = CoverageDetail.create(option: 'a', privacy_and_website_media: 250000.00, privacy_breach_service: 20000,
                    legal_forensic_cost: 25000.00, call_center_service: 'inc', deductible: 5000.00,
                    credit_monitoring_individuals: 20000, fraud_resolution_service: 5000, regulatory_defense: 100000.00,
                    pci_fines_and_costs: 50000.00, crisis_management_and_pr: 50000.00, foreign_notification: 10000.00)

    op_b = CoverageDetail.create(option: 'b', privacy_and_website_media: 500000.00, privacy_breach_service: 25000,
                            legal_forensic_cost: 50000.00, call_center_service: 'inc', deductible: 5000.00,
                            credit_monitoring_individuals: 25000, fraud_resolution_service: 5000, regulatory_defense: 250000.00,
                            pci_fines_and_costs: 50000.00, crisis_management_and_pr: 50000.00, foreign_notification: 10000.00)

    op_c = CoverageDetail.create(option: 'c', privacy_and_website_media: 1000000.00, privacy_breach_service: 50000,
                            legal_forensic_cost: 100000.00, call_center_service: 'inc', deductible: 5000.00,
                            credit_monitoring_individuals: 50000, fraud_resolution_service: 5000, regulatory_defense: 500000.00,
                            pci_fines_and_costs: 50000.00, crisis_management_and_pr: 50000.00, foreign_notification: 10000.00)

    op_a.save!
    op_b.save!
    op_c.save!
end

该环境为其提供了轨道运行环境,并且您的模型 CoverageDetail 出现在场景中。

谢谢

于 2012-10-04T17:22:47.553 回答