Если вы посмотрите ниже тега <form>
, вы увидите:
<input name="_method" type="hidden" value="put" />
Это потому, что HTTP не поддерживает PUT
и DELETE
методы.Он поддерживает только GET
и POST
, поэтому Rails таким образом имитирует метод PUT
UPD
О загрузке файла ajax: Загрузка файла AJAX в Ruby on Rails
чтобы добавить /users/:id/upload_image
путь, вы должны отредактировать ваши маршруты и контроллер:
# routes to get /users/:id/upload_image
map.resources :user, :member => {:upload_image => :put}
# users_controller
def upload_image
@user = User.find(params[:id])
...
end
Теперь вы можете использовать upload_image_user_path(@user)
, который будет генерировать /users/@user.id/upload_image
URL для вас
UPD 2
Если вы хотите получить /users/upload_image?user_id=XXX
# config/routes.rb
map.resources :user, :collection => {:upload_image => :put}
# app/controllers/users_controller.rb
def upload_image
@user = User.find(params[:user_id])
...
end