Неопределенный метод `синхронизация 'для 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+
Другие вопросы по тегам