【发布时间】:2013-04-28 01:45:00
【问题描述】:
我刚刚在rails4.0.0.rc1 上使用1.9.3-p374 从头开始创建了一个新应用程序(应该按照指南工作)。
但是,我做一个简单的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
在此处创建会导致
undefined method `synchronize' for nil:NilClass
错误指向if @book.save的行。
是因为1.9.3 还是我错过了什么?
【问题讨论】:
-
你能调试或登录
@book看看它初始化好吗? -
@book没问题。显然,只有当模型中包含唯一性验证时才会发生这种情况。我提交了一个错误 (github.com/rails/rails/issues/10454) -
我错了,问题是在将空数组分配给关联时,例如
@book.genre_ids = []。 -
好的,知道这会很有用=)
-
我在尝试对所有模型类执行某些操作时遇到此错误,但无意中也尝试对模型类的单例类执行此操作。它例如有方法#attribute_names,但是尝试调用它会遇到这个错误。
标签: ruby-on-rails ruby-on-rails-4 rubygems friendly-id