2013-05-03 28 views
15

Tôi vừa tạo một ứng dụng mới từ đầu trên rails4.0.0.rc1 với 1.9.3-p374 (sẽ hoạt động theo hướng dẫn).phương thức chưa xác định `đồng bộ hóa 'cho nil: NilClass

Tuy nhiên, tôi không thực hiện thao tác đơn giản create -action.

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 

Làm một tạo đây quả một

undefined method `synchronize' for nil:NilClass 

với lỗi trỏ đến dòng if @book.save.

Đó có phải là vì 1.9.3 hoặc tôi đã bỏ lỡ điều gì đó?

+0

bạn có thể gỡ lỗi hoặc đăng nhập '@ book' để xem nó đã được khởi tạo chưa? –

+0

'@ book'is okay. Rõ ràng, điều đó chỉ xảy ra khi mô hình có một xác nhận tính duy nhất trong nó. Tôi đã gửi một lỗi (https://github.com/rails/rails/issues/10454) – pduersteler

+0

Tôi đã sai, vấn đề là khi chỉ định một mảng trống cho một hiệp hội, như '@book.genre_ids = [] '. – pduersteler

Trả lời

35

Dường như, nó không thành công vì đá quý thân thiện. Nếu bạn sử dụng friendlyId, bạn có thể cần phải xác định rails4-branch.

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

chỉnh sửa: Hãy chắc chắn rằng để có được những chi nhánh/phiên bản thực tế từ norman/friendly_id. Theo readme, nó cần phải có ít nhất branch: 5.0.0-beta để làm việc với đường ray4.

edit2: bây giờ nó là 5.0.0.rc2, như tôi đã nói, chắc chắn để có được chi nhánh thực tế/phiên bản, tôi sẽ không rõ ràng cập nhật câu trả lời này mỗi khi có cập nhật phiên bản. Ngoài ra, đọc các ý kiến ​​cho câu trả lời này, có rất nhiều thông tin hữu ích. câu trả lời

+1

Các sự cố khi triển khai với cấu hình này; đây là ý chính với lỗi: https://gist.github.com/bbnnt/6261095/nếu có bất kỳ bằng chứng nào về việc tại sao điều này xảy ra, điều đó thật tuyệt vời! – Ben

+1

Yup, cũng vậy. Chi nhánh đã thay đổi. Sử dụng 'github: norman/friendly_id 'và nhánh tương ứng. Hiện tại, có '5.0.0.beta', cũng yêu cầu một số cập nhật trong bộ điều khiển hoặc mô hình của bạn. Xem https://github.com/norman/friendly_id#what-changed-in-version-50 – pduersteler

+0

OK sau đó thx! Bây giờ vấn đề khác; họ đang nói rằng "công cụ tìm kiếm kiểu dáng FriendlyId 4" vẫn có thể được sử dụng bằng cách thêm đặc tả (ở đâu đó trong phần bắt đầu của "Điều gì đã thay đổi trong phiên bản 5.0" trên trang github). Vấn đề là, nó không hoạt động. Ở phía đông bên cạnh tôi.Để thêm Model.friendly.something… ở mọi nơi – Ben

2

pduersteler đã không làm việc cho tôi và thất bại với lỗi này:

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

Các README đã cập nhật trên Sep 23, 2013 với những điều sau đây, mà được cài đặt mà không có lỗi:

gem 'friendly_id', '5.0.0.rc2' # Note: You MUST use 5.0.0 or greater for Rails 4.0+ 
+0

Các bạn đã không đọc các chỉnh sửa cũng không bình luận, bởi vì đó là những gì tôi đã viết ở đó;) – pduersteler

+1

Cảm ơn, xin lỗi về điều đó, đó là tất cả mới với tôi :) (và đã vội vã) – David

Các vấn đề liên quan