После того, как я сам столкнулся с этой проблемой и преодолел ее, я думаю, что смогу дать ответ.
Когда вы просто говорите:
def create
respond_with({:msg => "success"})
end
rails пытается «угадать» URL-адрес, по которому доступен вновь созданный ресурс, и поместить его в HTTP-заголовок местоположения . Это предположение с треском проваливается для хеш-объекта (местоположение, которое он выводит, равно nil, что приводит к сообщению об ошибке, которое вы видите).
Чтобы преодолеть эту проблему, вам необходимо сделать следующее:
def create
respond_with({:msg => "success"}, :location => SOME_LOCATION)
end
Предполагая, что вы знаете, где находится новый ресурс. Вы даже можете указать «nil» как «SOME_LOCATION», и это будет работать (несколько нелепо).