Причина этого, как вы указываете. Вы перенаправляете на запрос GET, который является правильным, когда дело доходит до REST (только обновления с POST / PUT, только получение данных с GET).
Перенаправление, безусловно, дает небольшие издержки при перенаправлении, но поскольку между браузером и сервером фактически не передаются никакие данные, за исключением данных POST и перенаправления (которое только отправляет новый URL-адрес в браузер), я надеваю Не думаю, что проблема с Bandwith вызывает беспокойство.
Но с другой стороны, вы не должны перенаправлять в / журналы (позвонив redirect_to :index
), вы должны перенаправить его на вновь созданную запись в журнале (позвонив redirect_to @entry
), которая будет работать, если вы правильно настроили маршруты например, map.resources :journals
Обновление:
Я думаю, что для создания Журнала, когда его нет, вы должны попросить пользователя больше информации. Какова причина для вас, чтобы создать запись? У записи должен быть какой-то текст или какой-то другой ввод от пользователя, поэтому я думаю, что с точки зрения REST (и рельсов) вы должны фактически перенаправить ее на метод new()
(с запросом GET), где пользователь может ввести дополнительную информацию. , затем он отправит вход, создаст запись и после перенаправления на вновь созданную запись.
Если у вас нет какой-либо дополнительной информации, которую нужно вставить, я не уверен, как это сделать RESTful, но я бы, вероятно, сделал это, поместив логику создания в отдельный метод, который я будет вызывать из create()
и show()
метод, а затем просто продолжать с show()
, вообще не перенаправляя, но и не вызывая метод ресурса.