Итак, у меня есть модель Events, в которой есть_many Questions. Связь такая же, как в Post-> Comment. Я попытался реализовать Ajax для вопросов, но мне кажется, что мне чего-то не хватает, потому что View не обновляется без обновления страницы. Та же проблема с методом удаления.
Вот мой 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
Вот как это выглядит в Events show.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, поэтому буду благодарен за любые предложения, если с ним что-то не так.
ИЗМЕНИТЬ 1: в основном я следовал этому руководству: https://pragmaticstudio.com/blog/2015/3/18/rails-jquery-ajax
ИЗМЕНИТЬ 2: похоже, create.js.erb не отвечает, пытался проверить его с помощью предупреждений или журнала консоли, но безуспешно. После нажатия кнопки на консоли, имеющей: «Обработка с помощью QuestionsController # создать как JS» (так что он запускает правильный файл, но сам файл не выполняет никакого кода). Понятия не имею, почему это происходит.
h4
, которые будут выглядеть так, как будто он вообще не добавляется) - person PhilVarg   schedule 07.05.2016h1
с идентификаторомquestions
уникальным в вашемshow.haml
шаблоне представления. У меня была такая же проблема, и причина в том, что было несколько элементов с одним и тем же идентификатором. Должен быть только один элемент с определенным идентификатором, и если их несколько, JS запутается. - person Taiga   schedule 07.05.2016