Цель состоит в том, чтобы визуализировать форму редактирования, вызвав какую-то функцию $.ajax
в моем javascript.
Я использую FullCalendar для отображения некоторых событий, поэтому я хотел бы реализоватьчто-то, что позволяет пользователю нажимать на событие и отображать нашу существующую форму редактирования где-то на странице.
Так вот, где я хочу это сделать:
// the javascript
eventClick: function(calEvent, jsEvent, view) {
$.ajax({
url: '/course_offerings/'+calEvent.id+'/edit',
});
},
eventClick
по сути является обратным вызовом после нажатия на событие:)
calEvent.id
является идентификатором course_offering
Так что, к сожалению, у меня нет доступа к хорошим :remote => 'true'
вариантам настройки ссылок.
Вот несколько фрагментов кода:
# controller edit function
@course_offering = CourseOffering.find(params[:id])
respond_to do |format|
format.html
format.js
end
# edit.js.erb, quickedit is the div where I want the form to render
$('#quickedit').append('hi');
Это правильный путь?Я действительно хочу начать как можно проще с вызовами ajax, я читал несколько примеров, и они становятся довольно сложными.
Кроме того, требования для вызова jquery $.ajax
в среде Rails в значительной степенидля меня загадка.
Редактировать 1:
Ооочень закрыть
Я попробовал следующее:
$.ajax({
dataType: 'script',
url: "/course_offerings/1/edit"
});
И вЯ получил отладчик Chrome:
http://localhost:3000/course_offerings/1/edit?_=1302199862022 500 (Internal Server Error)
Я не делал никаких специальных настроек заголовка, поэтому я думаю, что это может быть проблемой
Редактировать 2
ActionView::Template::Error (Missing partial course_offerings/edit with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:js, :html], :locale=>[:en, :en]} in view paths "/home/emp/ror/smarssched/app/views", "/home/emp/.rvm/gems/ruby-1.9.2-p136/gems/devise-1.1.5/app/views"):
1: $("#quick_edit").html(<%= escape_javascript(render :partial => 'edit', :object => @course_offering) %>)
Я переключил партиал на редактирование после получения ошибки с :partial => 'course_offering'
Чтобы, надеюсь, отредактировать партиал редактирования.
Редактировать 3
ActionView::Template::Error (undefined method `formats' for nil:NilClass):
1: $("#quick_edit").html(<%= escape_javascript(render :action => 'edit', :object => @course_offering) %>)
app/views/course_offerings/edit.js.erb:1:in `_app_views_course_offerings_edit_js_erb__58426168_85487740_698365018'
app/controllers/course_offerings_controller.rb:48:in `edit'
# Line 46-51 edit function
def edit
@course_offering = CourseOffering.find(params[:id])
respond_to do |format|
format.html
format.js
end
end
Если я уберу блок response_to, он выдаст ту же ошибку.