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

ここで create を実行すると、

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'

edit : 実際のブランチ/バージョンは、norman/friendly_id から取得してください。readmeによると、少なくともbranch: 5.0.0-betarails4で動作する必要があります。

edit2:今は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.

README は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 に答える