15

我刚刚从头开始创建了一个新应用程序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

在此处进行创建会导致

undefined method `synchronize' for nil:NilClass

错误指向if @book.save.

那是因为1.9.3还是我错过了什么?

4

2 回答 2

35

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

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

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

编辑2:现在5.0.0.rc2,正如我所说,确保获得实际的分支/版本,我显然不会在每次有版本更新时更新这个答案。另外,请阅读对此答案的评论,有很多有用的信息。

于 2013-05-06T06:53:27.130 回答
3

pduersteler 的回答对我不起作用,并因此错误而失败:

fatal: ambiguous argument 'rails4': unknown revision or path not in the working tree.

自述文件于2013 年9 月 23 日进行了更新,其中包含以下内容,安装时没有错误:

gem 'friendly_id', '5.0.0.rc2' # Note: You MUST use 5.0.0 or greater for Rails 4.0+
于 2013-10-02T22:28:05.053 回答