Rails 3 - как найти URL, куда будет отправлена ​​форма - PullRequest
0 голосов
/ 13 июня 2011

Я хотел бы спросить, если есть какое-то правило для действий, куда отправляется форма ... Если у меня есть вход в контроллер

  def edit
    @shop = Shop.find(params[:id])
  end

Просмотр:

<%= form_for(@shop, :html => {:multipart => true}) do |f| %>

Таким образом, в исходном коде HTML есть:

<form accept-charset="UTF-8" action="/shops/11" class="edit_shop" enctype="multipart/form-data" id="edit_shop_11" method="post">

И это означает, что эта форма будет отправлена ​​на : controller => 'shops' , : action => 'update' .

И я пытаюсь изменить это действие, куда будет отправляться форма.Я пробовал что-то вроде этого:

<%= form_for(@shop, :url => {:controller => 'shops', :id => params[:id], :action => 'aupdate'}, :html => {:multipart => true}) do |f| %>

Но в HTML-источнике есть

<form accept-charset="UTF-8" action="/shops/aupdate?id=11" class="edit_shop" enctype="multipart/form-data" id="edit_shop_11" method="post">

Я хотел бы спросить - как это возможно, форма не отправляется на действие обновить в этом случае?И что для этого нужно сделать?

Спасибо

1 Ответ

1 голос
/ 13 июня 2011

по вашему мнению:

<%= form_for :shop, :url => {:controller => 'shops', :action => 'aupdate', :id=> params[:id]}, :html=> {:id => "some-form-id", :multipart => true} do |f| %>

 .......

<% end %>

в ваших маршрутах:

resources :shops do
   collection do
    ....
     post :aupdate
    ....
   end
end

в вашем контроллере:

def aupdate
   ....
   puts "ssssssssssssssssssssssssssss",params.inspect
   ....
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...