2015-04-16 29 views
0

我正在研究Codeacademy日曆應用程序,並且使用我的rake db:seed發生錯誤。任何人都可以幫助解釋錯誤,以及如何解決它?來自未知屬性的遷移錯誤:日期

Eric-Parks-MacBook-Pro-2:calendar ericpark$ rake db:seed 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activesupport-4.1.1/lib/active_support/values/time_zone.rb:285: warning: circular argument reference - now 
    rake aborted! 
    ActiveRecord::UnknownAttributeError: unknown attribute: date 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/attribute_assignment.rb:50:in `rescue in _assign_attribute' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/attribute_assignment.rb:45:in `_assign_attribute' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/attribute_assignment.rb:32:in `block in assign_attributes' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/attribute_assignment.rb:26:in `each' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/attribute_assignment.rb:26:in `assign_attributes' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/core.rb:452:in `init_attributes' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/core.rb:198:in `initialize' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/inheritance.rb:30:in `new' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/inheritance.rb:30:in `new' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/persistence.rb:33:in `create' 
    /Users/ericpark/rails_projects/calendar/db/seeds.rb:9:in `<top (required)>' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:241:in `load' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:241:in `block in load' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:232:in `load_dependency' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:241:in `load' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/railties-4.1.1/lib/rails/engine.rb:543:in `load_seed' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/tasks/database_tasks.rb:184:in `load_seed' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/railties/databases.rake:173:in `block (2 levels) in <top (required)>' 
    NoMethodError: undefined method `date=' for #<Day id: nil, created_at: nil, updated_at: nil> 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activemodel-4.1.1/lib/active_model/attribute_methods.rb:435:in `method_missing' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/attribute_methods.rb:206:in `method_missing' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/attribute_assignment.rb:45:in `public_send' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/attribute_assignment.rb:45:in `_assign_attribute' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/attribute_assignment.rb:32:in `block in assign_attributes' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/attribute_assignment.rb:26:in `each' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/attribute_assignment.rb:26:in `assign_attributes' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/core.rb:452:in `init_attributes' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/core.rb:198:in `initialize' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/inheritance.rb:30:in `new' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/inheritance.rb:30:in `new' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/persistence.rb:33:in `create' 
    /Users/ericpark/rails_projects/calendar/db/seeds.rb:9:in `<top (required)>' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:241:in `load' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:241:in `block in load' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:232:in `load_dependency' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:241:in `load' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/railties-4.1.1/lib/rails/engine.rb:543:in `load_seed' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/tasks/database_tasks.rb:184:in `load_seed' 
    /Users/ericpark/.rvm/gems/ruby-2.2.0/gems/activerecord-4.1.1/lib/active_record/railties/databases.rake:173:in `block (2 levels) in <top (required)>' 
    Tasks: TOP => db:seed 
    (See full trace by running task with --trace) 

我操縱了遷移文件。

種子文件:

# This file should contain all the record creation needed to seed the database with its default values. 
# 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) 

d1 = Day.create(date: DateTime.parse('11th Jan 2015 00:00 AM')) 
Event.create(name: "Ben Visiting", from: DateTime.parse('11th Jan 2015 00:00 AM'), to: DateTime.parse('12th Jan 2015 00:00 AM'), location: "", day_id: d1.id) 

d2 = Day.create(date: DateTime.parse('12th Jan 2015 00:00 AM')) 

d3 = Day.create(date: DateTime.parse('13th Jan 2015 00:00 AM')) 
Event.create(name: "Taco Tuesday", from: DateTime.parse('13th Jan 2015 01:00 PM'), to: DateTime.parse('13th Jan 2015 03:00 PM'), location: "Brooklyn Taco Co. 120 Essex Street New York, NY 10002", day_id: d3.id) 

d4 = Day.create(date: DateTime.parse('14th Jan 2015 00:00 AM')) 
Event.create(name: "Pottery Painting", from: DateTime.parse('14th Jan 2015 06:00 PM'), to: DateTime.parse('14th Jan 2015 07:00 PM'), location: "The Art Cafe CH 326 Troy Avenue Brooklyn, NY 11213", day_id: d4.id) 

d5 = Day.create(date: DateTime.parse('15th Jan 2015 00:00 AM')) 

d6 = Day.create(date: DateTime.parse('16th Jan 2015 00:00 AM')) 
Event.create(name: "Casual Friday", from: DateTime.parse('16th Jan 2015 00:00 AM'), to: DateTime.parse('17th Jan 2015 00:00 AM'), location: "", day_id: d6.id) 
Event.create(name: "Running", from: DateTime.parse('16th Jan 2015 08:00 PM'), to: DateTime.parse('16th Jan 2015 08:30 PM'), location: "", day_id: d6.id) 
Event.create(name: "Grocery Shopping", from: DateTime.parse('16th Jan 2015 09:00 PM'), to: DateTime.parse('16th Jan 2015 09:30 AM'), location: "", day_id: d6.id) 

d6 = Day.create(date: DateTime.parse('17th Jan 2015 00:00 AM')) 

這裏是附加的種子文件。

+1

你能告訴我們你的種子文件嗎? – Joel

+1

看起來錯誤來自行:/Users/ericpark/rails_projects/calendar/db/seeds.rb:9,你有沒有改變這條線,以及如果你有。 – Saurabh

+0

我感覺好像錯誤來自:遷移文件中的日期,也許它沒有正確輸入? –

回答

1

從錯誤:

NoMethodError: undefined method `date=' for #<Day id: nil, created_at: nil, updated_at: nil> 

看來,你的表days沒有在任何日期列。可能有以下幾個原因:

  1. 你忘了執行現有的移民
  2. 您需要在此表中
  3. 您錯誤地傳遞INSERT語句date字段添加日期列。
+0

這裏是天'''類的遷移文件CreateDays

+0

這可能是因爲'date'是rails中的一個保留關鍵字。 [來源](http://siwei.me/blog/posts/ruby-rails-reserved-words-complete) – Saurabh

+0

嗯這是來自Codeacademy excercise創建日曆。它表示*在db/migrate /中爲days表打開遷移文件,並添加以下列:名爲date *的日期時間列。這會不正確嗎?我應該將列日期重命名爲其他內容嗎? –