Ruby on Rails初学者。
在localhost:3000
中出现此错误的ActiveRecord :: PendingMigrationError 迁移正在等待中。要解决此问题,请运行:bin / rake db:migrate RAILS_ENV = development
我在终端运行了rake db:migrate并得到了这个:
$ rake db:migrate
rake aborted!
SyntaxError: /Users/EuphoriaComplex/src/bookmarks/db/migrate/20150407050503_add_user_to_bookmark.rb:5: syntax error, unexpected tIDENTIFIER, expecting keyword_end
add has_many :bookmarks to app/models/user.rb
^
/Users/EuphoriaComplex/src/bookmarks/db/migrate/20150407050503_add_user_to_bookmark.rb:7: syntax error, unexpected tIDENTIFIER, expecting keyword_end
add belongs_to :user to app/model/user.rb
^
这是我在Sublime中的书签/ db / migrate中的代码:
class AddUserToBookmark < ActiveRecord::Migration
def change
add_column :bookmarks, :user_id, :integer
add has_many :bookmarks to app/models/user.rb
add belongs_to :user to app/model/user.rb
end
end
我正在关注本教程:http://12devs.co.uk/articles/writing-a-web-application-with-ruby-on-rails/ 我只是去了#34;要求身份验证来管理你的书签&#34;
&#34;用户有很多书签&#34; 是相关部分。
答案 0 :(得分:2)
错误告诉您问题的确切位置。
add has_many :bookmarks to app/models/user.rb
add belongs_to :user to app/model/user.rb
这不应该在迁移中,因为它们不会更改架构。您需要将这些添加到书签和用户模型中,所以
class Bookmark < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
has_many :bookmarks
end
答案 1 :(得分:0)
模型之间的关系放在模型中,迁移是针对数据库的,它是不同的......你应该保留add_column :bookmarks, :user_id, :integer
,但是其他两行会从迁移中删除它们,你应该去你的{ {1}}模型并添加user.rb
并转到has_many :bookmarks
模型并添加bookmark.rb
也许您也可以阅读本指南,它可能有所帮助:http://guides.rubyonrails.org/index.html