Как рельсы выпускают метод обновления? - PullRequest
0 голосов
/ 05 декабря 2009

В edit.html.erb файле, создан скаффолд, я не вижу кода, указанного PUT методом. Как получается, что действие по обновлению вызова после публикации формы с PUT методом.

Ответы [ 3 ]

4 голосов
/ 05 декабря 2009

Функция form_for определит, куда отправить форму:

Возьмите следующий код, например:

<% form_for @user do |form| %>
  1. Если @user - новая запись, она отправит запрос POST на /users
  2. Если @user является существующей записью, она отправит запрос PUT на /users/12 (Если 12 = @ user.id)
1 голос
/ 05 декабря 2009

Вы можете увидеть метод put при редактировании при запуске

rake routes


new_account  GET    /account/new(.:format)  {:action=>"new", :controller=>"accounts"}
edit_account GET    /account/edit(.:format) {:action=>"edit", :controller=>"accounts"}
account      GET    /account(.:format)      {:action=>"show", :controller=>"accounts"}
             PUT    /account(.:format)      {:action=>"update", :controller=>"accounts"} //this is your method needed
             DELETE /account(.:format)      {:action=>"destroy", :controller=>"accounts"}
             POST   /account(.:format)      {:action=>"create", :controller=>"accounts"}

<% form_for @user do |form| %> can be <% form_for :user, :url => user_url(:user), :method => :put do |form| %>
0 голосов
/ 05 декабря 2009

Стандартный способ Rails обрабатывать обновления - это иметь шаблон редактирования (ваш edit.html.erb), который генерирует форму, которая заполняется пользователем, а затем отправляется как запрос HTTP PUT. Ваше Rails-приложение должно иметь модель для обновляемого ресурса с контроллером, который выполняет действие «update» для приема параметров формы.

Если вы хотите видеть данные, отправляемые в запросе PUT, вы можете использовать Firebug .

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