Попытка реализовать форму в диалоге пользовательского интерфейса jquery.У меня есть модель «Клиенты» со стандартными действиями «Создать», «Создать обновление» и т. Д.
Для ссылки «Новый клиент» у меня есть код, который загружает форму в модальный режим, а затем позволяет мне отправитьФорма через почтовый запрос.Внутри диалогового окна у меня есть пара кнопок для отправки формы
buttons: {"Save": function() {
$.post("/customers", $("#new_customer").serializeArray());
$(this).dialog('close');},
"Cancel": function() {$(this).dialog('close');}
}
Это прекрасно работает.
Однако, когда я пытаюсь выполнить репликацию для ссылки «Редактировать», она не работает.
buttons: {"Save": function() {
$.post("/customers", $("#edit_customer").serializeArray());
$(this).dialog('close');},
"Cancel": function() {$(this).dialog('close');}
}
Я смотрю на маршруты рейка, на которых написано:
customers GET /customers(.:format) {:action=>"index", :controller=>"customers"}
POST /customers(.:format) {:action=>"create", :controller=>"customers"}
Итак, это потому, что EDIT не работает?Нужно ли мне создать именованный маршрут для него?Пожалуйста, дайте мне знать, что, по вашему мнению, может быть проблемой!
Мой метод создания выглядит следующим образом:
def create
@customer = Customer.new(params[:customer])
if @customer.save
redirect_to @customer, :notice => "Successfully created customer."
else
render :action => 'new'
end
end
В маршрутах.rb у меня есть:
resources :customers do
resources :plans
end
и сгенерированные маршруты:
customers GET /customers(.:format) {:action=>"index", :controller=>"customers"}
POST /customers(.:format) {:action=>"create", :controller=>"customers"}
new_customer GET /customers/new(.:format) {:action=>"new", :controller=>"customers"}
edit_customer GET /customers/:id/edit(.:format) {:action=>"edit", :controller=>"customers"}
customer GET /customers/:id(.:format) {:action=>"show", :controller=>"customers"}
PUT /customers/:id(.:format) {:action=>"update", :controller=>"customers"}
У меня есть партиал с формой, которую я загружаю для новых и редактируемых методов (тот же партиал).
<%= form_for @customer do |f| %>
...
<% end %>
но в исходном коде написано:
<form accept-charset="UTF-8" action="/customers/1" class="edit_customer" id="edit_customer_1" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓"><input name="_method" type="hidden" value="put"><input name="authenticity_token" type="hidden" value="DpfK5tChAxY3gOT8CfKQQTS6igRUMAM4tQbCf3GeA8I="></div>
Так как мне использовать PUT от JS?
Спасибо!