Это так просто, что это смешно, я не мог найти информацию об этом нигде, включая API-документы и исходный код Rails:
У меня есть ассоциация: own_to, и я пришел к выводу, что обычные методы модели, которые вы вызываете в контроллере, когда у вас нет ассоциации, немного отличаются от тех, которые вы делаете.
Например, у меня нормально работает ассоциация для действия create controller:
@user = current_user
@building = Building.new(params[:building])
respond_to do |format|
if @user.buildings.create(params[:building])
# et cetera
но я не могу найти документы о том, как работает обновление:
@user = current_user
@building = @user.buildings.find(params[:id])
respond_to do |format|
if @user.buildings.update(params[:building])
# et cetera
Использование метода update приводит к ошибке «неверное количество аргументов (1 для 2)», и я не могу понять, какие аргументы предполагается отправить.