лучший способ сделать HTML-обновления, чем выставить JavaScript в rails3 - PullRequest
0 голосов
/ 21 января 2011

У меня есть следующий код, который является частью кода _form.html.erb. По сути, у меня есть форма, в которой у меня есть функция наблюдай-поля, где при изменении она будет устанавливать значения полей без обновления страницы. Ниже приведен мой HTML-код:

<script type="text/javascript">

    // When DOM loads, init the page.
    $(function() {
      // Executes a callback detecting changes with a frequency of 1 second
      $("#id_element_placeholder").observe_field(1, function( ) {                                       
        $.ajax({
        type: "GET",
        dataType: "json",
        url: "/students/get/" + this.value,
        success: function(data){
            $('#last_name').attr('value', data.student.last_name);
            $('#building').attr('value', data.student.building);
            $('#room').attr('value', data.student.room);                                                
        }
        });
      });
    });

  </script>

Проблема здесь в том, что я раскрываю большую часть своего кода в javascript. Есть ли лучший способ сделать это без разоблачения кода в JavaScript?

Вот как выглядит мой контроллер:

def get
    @student = Student.find(params[:id])
    respond_to do |format|
        format.html
        format.json { render :json => @student }
     end
end

В основном я получаю идентификатор в форме, и оттуда я должен получить соответствующий объект и обновить поля на странице.

1 Ответ

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

Если ваш дизайн требует, чтобы вы выполняли AJAX-вызовы для запроса информации об ученике по идентификатору, то вам необходимо указать URL-адрес для вызова. Если вы не хотите предоставлять структуру данных JSON, вы можете вернуть фрагмент HTML (вместо JSON) и заменить содержимое контейнера всех элементов управления, которые вы упомянули выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...