У меня есть следующий код, который является частью кода _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
В основном я получаю идентификатор в форме, и оттуда я должен получить соответствующий объект и обновить поля на странице.