метод синатры не работает - PullRequest
       4

метод синатры не работает

3 голосов
/ 16 сентября 2011

При отправке формы метод put используется для отправки данных из формы в sinatra. Метод put определен в app.rb Метод put вызывает файл erb, который отображает два значения.

но ничего не отображается, может кто-нибудь помочь, пожалуйста.

put '/form' do

@name = params[:FirstName]
@last = params[:LastName]

erb :formact
end

форма

<form name="biodata" action="form" method="put" onsubmit="validateForm()">
code
</form>

Спасибо

Ответы [ 2 ]

9 голосов
/ 16 сентября 2011

Вы не можете отправить запрос PUT напрямую из браузера, но вы можете подделать его, используя параметр method_override Sinatra, который по умолчанию установлен в true в классическом стиле.Если вы используете модульный стиль, вам нужно включить его с помощью enable :method_override.

. При этом проверяются входящие запросы на параметр с именем _method, и, если он обнаруживает один, метод запроса вызова изменяется.к значению параметра, так что остальной части приложения кажется, что вызов был выполнен с использованием этого метода HTTP.

Чтобы заставить работать метод put, используйте метод POST в вашемформы, но для включения скрытого ввода с именем "_method" и значением "put"

<form name="biodata" action="form" method="post" onsubmit="validateForm()">
  <input type="hidden" name="_method" value="put" />
  code
</form>

Это тот же метод, который используется в Rails (фактически это то же промежуточное программное обеспечение, которое используется - Rack::MethodOverride).

3 голосов
/ 16 сентября 2011

Я не думаю, что PUT является допустимым методом для отправки формы.Проверьте журнал HTTP-сервера и посмотрите, действительно ли запросы поступают в виде PUT запросов - браузер может отправлять их как GET, что является значением по умолчанию.1006 * вместо.

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