nil的未定义方法`synchronize':NilClass

pdu*_*ler 15 rubygems ruby-on-rails friendly-id ruby-on-rails-4

我刚刚创建了一个从无到有的新的应用程序rails4.0.0.rc11.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
Run Code Online (Sandbox Code Playgroud)

在这里做一个创建结果a

undefined method `synchronize' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

错误指向的行if @book.save.

那是因为1.9.3或者我错过了什么吗?

pdu*_*ler 35

显然,由于friendlyId gem,它失败了.如果使用friendlyId,则可能需要指定rails4-branch.

gem 'friendly_id', github: 'FriendlyId/friendly_id', branch: 'rails4'

编辑:确保从norman/friendly_id获取实际的分支/版本.根据自述文件,它至少branch: 5.0.0-beta需要与rails4一起使用.

edit2:现在5.0.0.rc2正如我所说,确保获得实际的分支/版本,每次版本更新时,我都不会更新此答案.另外,阅读本答案的评论,有很多有用的信息.