Я хочу загрузить набор объектов и визуализировать их с помощью Ajax и select
элементов в HTML. Вот JQuery я использую, чтобы сделать запрос:Выполнение запроса POST с использованием jQuery Ajax и Rails
planner.js
$("select.semesterSelect").change(function(){
$.ajax({
type: "POST",
url: "/planners/events",
data: {timeperiod: {id: $(this).find(":selected").val()}},
success: function(events){
console.log("success");
},
error: function(){
console.log("error");
}
});
});
Здесь действие контроллера я использую, чтобы найти объекты, которые я хочу, чтобы сделать:
planners_controller.rb
def events
@timeperiod = params[:timeperiod] ? Timeperiod.find(params[:timeperiod][:id]) : Timeperiod.find(Timeperiod.last.id)
@events = Event.where("from_date >= :tp_from_date AND to_date <= :tp_to_date", {tp_from_date: @timeperiod.from_date, tp_to_date: @timeperiod.to_date})
respond_to do |format|
format.html
format.js
end
end
Наконец, вот js.erb файл я использую для визуализации событий (я закомментировать строку рендеринга).
events.js.erb
//$("#events_div").html("<%= escape_javascript(render(:partial => 'planners/event')) %>");
console.log("here");
Когда я сделать выбор, используя эту установку, я получаю «успех» в журнале JS консоли. Однако я не вижу «здесь». Когда я раскомментирую линию рендеринга, я не создаю свои новые объекты.
Что я делаю неправильно?
Редактировать: Я исправил имена файлов. Редактировать 2: Ниже приведены ссылки, которые я использовал для форматирования этого кода.
"Работа с JavaScript в Rails": http://guides.rubyonrails.org/working_with_javascript_in_rails.html "как сделать оказывают частичное по методу успеха JQuery Ajax с рельсами 3": How to do render partial on jQuery ajax success method with rails 3
Имеет ли содержащий div действительно атрибут id 'events_div'? – zeantsoi
Да. Проблема в том, что event.js.erb вообще не вызывается. –
Похоже, что это визуализируется, так как вы можете выйти из «' здесь », если вы удалите первую строку. Возможно, проблема в частичном «планировщике/событии»? – zeantsoi