У меня есть 2 контроллера: Приветствие (которое обрабатывает домашнюю страницу) и Приглашения (которые помогают людям создавать / управлять приглашениями).Я пытаюсь иметь на одной и той же welcome.html.erb
обе части в представлении Приглашения: _form.html.erb
(для создания приглашения) и _results.html.erb
(для отображения приглашений через Ajax на одной странице welcome.html.erb
).У меня также есть create.js.erb
в папке просмотра приглашения.Входные данные работают хорошо, но обновления в реальном времени нет.Мне все еще нужно обновить страницу.Кто-нибудь знает, что я делаю не так, пожалуйста?
_form.html.erb
код:
<h3 class="section_title"> Express meeting request IR </h3>
<div id="theform">
<%= simple_form_for invitation do |f| %>
<%= f.error_notification %>
<%= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present? %>
<%= f.label "Dest." %>
<%= f.collection_select(:guest_id, User.all, :id, :full_name, {}, class: "selectpicker", title: "Choose recipient", multiple: true, data: {style: "form-control", size: "200", width: "100%"}) %>
<br><br>
<%= f.input :event_id %>
<%= f.input :start %>
<%= f.input :title %>
<%= f.input :type_of_event %>
<%= f.label "Memo" %> <br>
<%= f.text_area :memo, as: :text, class: "text_area_iro", rows: 5 %>
<div class="form-actions">
<%= f.button :submit, class: "btn-custom"%>
</div>
<% end %>
</div>
_result.html.erb
(определенный заголовок таблицы удален) выглядит так:
<% @invitationsR.each do |invitation| %>
<tr>
<td><%= find_name(invitation.user_id) %></td>
<td><%= invitation.start %></td>
<td><%= TypeEvenement.find_by(id: invitation.type_of_event).type_name %> </td> </tr>
<% end %>
create.js.erb
выглядит так:
$("#theform").html("<%= escape_javascript(render :partial => 'invitations/result', :locals => {:invitation => @invitation}) %>");
Welcome.html.erb
выглядит как
<%= render :partial => 'invitations/form', :locals => {:invitation => Invitation.new} %>
<%= render :partial => 'invitations/result', :locals => {:invitations => @invitations} %>
Контроллер, как обычно, имеет простые методы new и create.Метод создания выглядит следующим образом:
def create
@listmail = params[:invitation][:guest_id]
@listmail = @listmail.join(' ').split
@listmail.each do |v|
@invitation = current_user.invitations.build(invitation_params)
@invitation.guest_id = v
puts(v)
@invitation.save!
end
if @invitation.save
redirect_to invitations_path
else
render 'new'
end
end