Как я могу использовать метод POST в приложении ROR на сервере Heroku? - PullRequest
0 голосов
/ 02 ноября 2011

Я создал простое приложение ROR на сервере Heroku и хочу добавить продукт , используя скрипт RUBY:

требуется 'rubygems' требуется rest_client

RestClient.post 'http://falling -ice-5948.herokuapp.com / products / new ', : title => 'TESTTESTTEST',: description => "MYTESTTESTTESTTEST", : image_url => "TESTTESTNULL.jpg",: цена => 4,50

Вот моя страница:

http://falling -ice-5948.herokuapp.com / продукты / новый

Когда я запускаю свой скрипт, он выдает ошибку:

ruby ​​postEasy.rb /usr/lib/ruby/gems/1.8/gems/rest-client-1.6.7/lib/restclient/abstract_response.rb:48:in return!': 404 Resource Not Found (RestClient::ResourceNotFound) from /usr/lib/ruby/gems/1.8/gems/rest-client-1.6.7/lib/restclient/request.rb:230:in process_result 'из /usr/lib/ruby/gems/1.8/gems/rest-client-1.6.7/lib/restclient/request.rb:178:in transmit' from /usr/lib/ruby/1.8/net/http.rb:543:in начать с /usr/lib/ruby/gems/1.8/gems/rest-client-1.6.7/lib/restclient/request.rb:172:in transmit' from /usr/lib/ruby/gems/1.8/gems/rest-client-1.6.7/lib/restclient/request.rb:64:in выполнить 'от /usr/lib/ruby/gems/1.8/gems/rest-client-1.6.7/lib/restclient/request.rb:33:in execute' from /usr/lib/ruby/gems/1.8/gems/rest-client-1.6.7/lib/restclient.rb:72:in post 'от postEasy.rb: 4

Есть идеи?

Заранее спасибо

Ответы [ 3 ]

1 голос
/ 02 ноября 2011

Проверьте вывод rake routes.Это покажет методы для настроенных вами маршрутов и доступные методы.Я подозреваю, что / products / new будет отображаться как GET, а / products как POST - это то, что вы на самом деле хотите делать.

Кстати, это также произошло бы локально, так что это не имеет ничего общего с Heroku.

1 голос
/ 02 ноября 2011

Вам нужно будет вложить параметры в методе RestClient.post. Скорее всего, вы ищете params[:product] в ваших действиях, но для этого не будет никаких данных. Я тестировал приложение на вашей героке, извините за это, но это будет работать (как и для меня):

RestClient.post 'http://falling-ice-5948.herokuapp.com/products',
  :product => {
    :title => 'foobarbazfoobarbaz',
    :description => "foobarbazfoobarbaz description",
    :image_url => "foobarbazfoobarbaz.jpg",
    :price => 42.00
  }
1 голос
/ 02 ноября 2011

Я не знаю деталей вашего приложения, но я ожидаю, что вы позвоните в POST-запрос на http://falling -ice-5948.herokuapp.com / products / , а не http://falling -ice-5948.herokuapp.com / продукты / новый .

GET http://falling -ice-5948.herokuapp.com / products / new получит форму для создания новой записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...