Шаблон действия не рендерится после вызова ajax в Rails 3.2.13

0

Я хотел бы выполнить запрос ajax, передав некоторые данные из браузера (некоторые текстовые значения в виде строки) и визуализировать представление того же действия, к которому я отправляю запрос с помощью ajax.

Мой рабочий процесс выглядит следующим образом:

  1. Пользователь загружает два файла: calib и: inten.

  2. приложение сохраняет файл с помощью paperclip и анализирует информацию в разных переменных экземпляра.

  3. После того, как файл проанализирован, приложение отправляет сообщение в виде flash[:notice] в действие create и сразу же делает список pr доступным для пользователя в виде выпадающего списка в браузере.
  4. Есть два частичных _form и _formTwo которые оказываются в действии create.

  5. когда я выполняю запрос ajax, я создаю представление, и я запрашиваю другое действие с именем norm в контроллере.

  6. После вызова ajax я хочу, чтобы приложение отображало norm.html.erb без обновления страницы.

Мои коды находятся здесь: http://pastie.org/private/keykmwbzcrv04dfvkufsew

Я пробовал ajax, используя ненавязчивый javascript, но я не знаю, как передать некоторые данные (упомянутые выше) с помощью link_to или button_to helper.

С помощью простого jQuery ajax я могу передавать данные на сервер, но моя страница не является рендерингом. Журнал разработки показывает, что страница отображается, но на странице браузера ничего не меняется. Я знаю, что я что-то упускаю, но не могу понять это?

Выход журнала разработки:

Started POST "/normalize" for 127.0.0.1 at 2014-04-30 13:38:43 +0200
Processing by UploadsController#normalize as */*
Parameters: {"data"=>"17,Poly-T-CY5,EukS_1209_25_dT"}
Upload Load (0.1ms)  SELECT 'uploads'.* FROM 'uploads' WHERE 'uploads'.'id' = 17 LIMIT 1
Rendered uploads/_normalize.html.erb (0.2ms)
Rendered uploads/normalize.js.erb (1.0ms)
Completed 200 OK in 4ms (Views: 2.1ms | ActiveRecord: 0.1ms)

Надеюсь, я хорошо объяснил свою проблему, пожалуйста, дайте мне знать, если я не понял себя?

Теги:
ruby-on-rails-3
unobtrusive-ajax
unobtrusive-javascript

1 ответ

0

Link_to позволяет передать ему data_hash следующим образом:

<%=link_to("Link",link_path,:data=>{foo:"bar",hello:"goodbye"},remote:true)%>

Глядя на ваш код, еще одна проблема заключается в том, что файл 'norm.html.erb' не является частичным. Чтобы отобразить его из "norm.js.erb", вам нужно переименовать его "_norm.html.erb", поэтому рельсы распознают его как частичное.

  • 0
    спасибо за объяснение ... но я обнаружил серьезную проблему в моем коде, и это было dataType: 'string' в моем вызове ajax, который должен быть dataType: 'script'. Я изменил это, и все работало хорошо. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню