2016-05-06 1 views
0

Итак, у меня есть модель событий, у которой есть вопросы. Отношение такое же, как в Post-> Comment. Я попытался реализовать некоторые Ajax для Вопросов, но кажется, что я что-то пропустил, потому что View не обновляется без обновления страницы. Та же проблема с методом удаления.рельсы 4, вложенный ресурс не обновляется без обновления страницы, используя Ajax

Вот мой question_controller.rb:

def create 
@question = @event.questions.create(question_params) 
@question.user_id = current_user.id if current_user 
if @question.save 
    respond_to do |format| 
    format.html { redirect_to event_path(@event) } 
    format.js # render questions/create.js.erb 
    end 
else 
    render 'events/show' 
end 
end 

Вопрос _form.haml:

= simple_form_for [@event, @event.questions.new], remote: true do |f| 
= f.input :content, label: 'Your question:', id: 'question_content' 
= f.submit class: 'submit_btn' 

Вопрос парциальное _question.haml:

%h4 
    = question.content 

Вот как это выглядит в события показывают .haml:

%section#question_section 
%h1 Questions: 
    #questions 
    = render @event.questions 

#question-form 
%h1 Submit a question: 
= render 'questions/form' 

И create.js.erb файл:

$('#questions').append("<%= j render partial: @question %>"); 
$('#question_content').val(''); 

Я пытался несколько различных руководств, но всегда была такая же проблема. Просмотр обновлений только после обновления. Также это мой второй пост в Stackoverflow, поэтому был бы благодарен за любые предложения, если с этим что-то не так.

EDIT 1: в основном я после этого учебника: https://pragmaticstudio.com/blog/2015/3/18/rails-jquery-ajax

EDIT 2: create.js.erb, похоже, не отвечать, пытался проверить его с предупреждениями или лог консоли, но без любой успех. После запуска кнопки в консоли, имеющей: «Обработка по ВопросамController # create as JS» (поэтому он запускает правильный файл, но сам файл не выполняет какой-либо код). Не знаю, почему это происходит.

+0

Вы можете подтвердить, что create.js.erb действительно получить выполнен? и что ваш вопрос имеет содержание. (т. е. это не просто добавление пустых тегов 'h4', которые бы выглядели так, как будто они не были добавлены вообще) – PhilVarg

+0

кажется нет, я попытался выполнить console.log, и он не появляется после запуска кнопки create. также устал: format.js {render action: "create"} в контроллере – Punk

+0

есть ли ошибки в вашей консоли сервера? что ответ сервера говорит об этом? – PhilVarg

ответ

0

Так что проблема была из-за HAML. Если бы изменить мою format.js линию в контроллере:

formta.js { render layout: false } 

Вот нить, которая помогла решить эту проблему: Rails update.js.erb not executing javascript

 Смежные вопросы

  • Нет связанных вопросов^_^