2015-04-07 2 views
0

Ruby on Rails начинающий здесь.Rails: синтаксическая ошибка, неожиданный tIDENTIFIER, ожидающий keyword_end

Если бы эта ошибка в локальном хосте: 3000

ActiveRecord :: PendingMigrationError Миграция в ожидании. Чтобы устранить эту проблему, выполните следующую команду: бен/грабли БД: мигрировать RAILS_ENV = развитие

Я побежал грабли БД: мигрировать в терминале и получил это:

$ 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:

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/ и я только сделал это, чтобы «Требовать проверку подлинности, чтобы управлять своими закладками»

«У пользователей много закладок» - это раздел.

+0

комментарий в нижней части учебника poin что 'add own_to: user' должен указывать на' app/model/bookmark.rb' –

ответ

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 
+0

, глядя на учебник, я могу понять, почему вы запутались. Он говорит вам добавить ** has_many: bookmarks ** к файловому приложению/models/user.rb – forthowin

+0

привет, я только что опубликовал новый вопрос, я был бы признателен, если вы можете мне помочь. вы ответили мне в прошлый раз. – user1010101

0

Отношение между моделями идет в моделях миграции для базы данных, она отличается ... Вы должны держать add_column :bookmarks, :user_id, :integer но другие две строки удалить их из миграции, вы shouldgo к вашей user.rb модели и добавить has_many :bookmarks и перейти к вашей bookmark.rb модели и добавить belongs_to :user

может быть, вы также можете прочитать это руководство, оно может помочь: http://guides.rubyonrails.org/index.html

Смежные вопросы