Я не ученый, а инженер-механик по профессии. Поэтому я заранее прошу прощения, если я не использую правильные слова для описания вещей. Я буду стараться изо всех сил, чтобы быть ясным.
Я работаю на сайте Rails, который отображает выходную мощность солнечного инвертора клиента. На странице, где отображается выходная мощность (с помощью javascript), я хотел бы, чтобы javascript (со встроенным ruby) был перерисован при замене текстового поля (в котором есть дата). Как и в случае, когда клиент хочет просмотреть свои данные выходной мощности для другой даты, JavaScript для этой страницы будет перерисован соответственно.
Первоначально я пытался использовать render :update
и page.replace_html
в действии контроллера, которое будет называться заменой текстового поля, но после дальнейших исследований выяснилось, что это не считается хорошей практикой? Кроме того, и что еще более важно, я не мог заставить это работать (мне так стыдно. Большое спасибо тем ответчикам, которые пытались помочь мне!).
Я смотрел Railscast # 136 и пытаюсь адаптировать эту информацию к тому, что мне нужно.
Страница poweroutput.html.erb
. Весь мой javascript находится внутри тегов скрипта в основном html-файле. HTML для элемента текстового поля на poweroutput.html.erb
выглядит следующим образом (не работает):
<%= text_field_tag(
'dt', nil,
{ :id => 'date-field',
:class => 'dateformat-d-dt-m-dt-Y',
:onchange => remote_function(
:url => {:controller => 'pages', :action => 'poweroutput'})
})
%>
Так что я подумал, что вышеизложенное в основном просто обновит / повторно отобразит страницу при замене текстового поля, но ничего не происходит.
Пожалуйста, помогите, когда я рву свои волосы. Я думаю, что частью моей проблемы должно быть то, что я не понимаю, что делает основная функция Ajax, которая вызывается методом remote_function
. Если вы можете пролить некоторый свет на это ИЛИ предложить совершенно другой метод повторного рендеринга замены текстового поля в javascript, я был бы очень благодарен!