Ajax загружает данные POST, не вставляя их в базу данных в Rails 3 - PullRequest
0 голосов
/ 07 января 2011

У меня очень много времени, когда я получаю параметр из массива POST и вставляю его в базу данных MySQL. Файл передается на контроллер RAILS 3, который должен получить имя файла и использовать его в качестве значения в операторе SQL. Это мой контроллер:

def upload
    @item= Item.new(params[:qqfile])
    Rails.logger.info("PARAMS: #{params.inspect}")
    # if params array contains :qqfile
    unless params[:qqfile].empty?
      # model should:
      # copy file to uploads directory
      render_success
      if @item.save

      else
        render :text => 'database did not save'
      end
      # redirect to render success action
    else
      render :text => '{success:false}'
    end
  end

Журнал показывает, что запрос выполняется, но со значением NULL:

Started POST "/item/upload?qqfile=1eCH6.jpg" for 127.0.0.1 at Fri Jan 07 09:16:0
9 -0700 2011
  Processing by ItemController#upload as HTML
  Parameters: {"qqfile"=>"1eCH6.jpg"}
PARAMS: {"qqfile"=>"1eCH6.jpg", "controller"=>"item", "action"=>"upload"}
Rendered text template (0.0ms)
  SQL (0.0ms)  INSERT INTO `items` (`name`, `qqfile`, `created_at`, `updated_at`
) VALUES (NULL, NULL, '2011-01-07 16:16:10', '2011-01-07 16:16:10')
Completed 200 OK in 359ms (Views: 16.0ms | ActiveRecord: 0.0ms)

Ключ находится в массиве. Я запутался, почему контроллер не использует свое значение для значения в запросе SQL.

1 Ответ

0 голосов
/ 21 января 2011

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

...