Неопределенный метод `синхронизация 'для nil:NilClass
Я только что создал новое приложение с нуля rails4.0.0.rc1
с 1.9.3-p374
(который должен работать в соответствии с инструкциями).
Тем не менее, я не могу сделать простой create
-действие.
class Books
def create
@book = Book.new book_params
if @book.save
redirect_to @book
else
render action: :new
end
end
private
def book_params
params.require(:book).permit(:name, :description)
end
end
Создание здесь приводит к
undefined method `synchronize' for nil:NilClass
с ошибкой, указывающей на строку if @book.save
,
Это из-за 1.9.3
или я что то пропустил?
2 ответа
По-видимому, это не удалось из-за дружественного драгоценного камня. Если вы используете friendlyId, вам может потребоваться указать rails4-branch.
gem 'friendly_id', github: 'FriendlyId/friendly_id', branch: 'rails4'
edit: убедитесь, что вы получили актуальную ветку / версию от norman/friendly_id. Согласно readme, оно должно быть как минимум branch: 5.0.0-beta
работать с рельсами4.
edit2: теперь это 5.0.0.rc2
Как я уже сказал, убедитесь, что вы получили актуальную ветку / версию, и я не буду обновлять этот ответ каждый раз, когда происходит обновление версии. Также читайте комментарии к этому ответу, там много полезной информации.
Ответ pduersteler не сработал для меня и потерпел неудачу с этой ошибкой:
fatal: ambiguous argument 'rails4': unknown revision or path not in the working tree.
README было обновлено 23 сентября 2013 года, и было установлено следующее:
gem 'friendly_id', '5.0.0.rc2' # Note: You MUST use 5.0.0 or greater for Rails 4.0+