2017-02-08 5 views
0

ich für Kommentare in einem Materialise-css modale Ansicht fragen:Rails Ajax modalen Schließen nicht nach einreichen

<% @contents.each do |content| %> 
some form elements 

<%=button_to('Comments', new_comment_path, :method => :get, params: { :content_id => content.id }, :class=> 'modal-trigger', 'data-target'=>'modal4'+content.id.to_s) %> 

<% end %> 

modal =>

<div id="modal4<%=content.id%>" class="modal modal-fixed-footer"> 
<div class="modal-content"> 
    <%= form_for Comment.new, remote: true do |f| %> 
    … 
    … 
    <%= f.submit 'Send’ %> 

    <% end %> 

CommentsController =>

def create 
    @comment = Comment.new(comment_params) 
end 

Die Werte werden in der DB gespeichert: Gerenderte Kommentare/create.js.erb (0.0ms)

Aber: Ich kann das Modal nicht wieder schließen nach dem Senden.

create.js =>

Versuchte mit

$('#modal4').closeModal(); 
$('#modal4').modal('close'); 
$('modal4<%[email protected]_id%>').closeModal(); 
$(„modal4<%[email protected]_id%>").modal('close'); 

Aber ohne Erfolg .. etwas Hilfe brauchen, um diese Arbeiten zu machen. Dank

+0

Was 'content' ist? Haben Sie eine Spalte "content_id" in der Tabelle "Kommentare"? –

+0

Um den Ruby-Code in JS zu bewerten, benennen Sie die Datei in 'create.js.erb' um. –

+0

@Arun => content_id ist in .. Addition info: Da das Modal innerhalb einer Ansicht Kategorien aufgerufen wird und die create.js.erb im Kommentarfokus ist, sucht es für mich das $ ('# modal4'). closeModal(); findet den Pfad zu dem Tag nicht, um es zu schließen. – Werner

Antwort

0

ok. der Punkt war ein Eintrag in application.html =>

<base href='http://lvh.me:3000' /> 

Erstellen von a => XMLHttpRequest kann

ich mit ... Route erfolgreich am Ende nicht

laden:

resource :contents do 
    resources :comments, only: [:new, :create, :update] 
end 

die modalen Aufruf

<%=button_to('Comment', '#', :method => :get, :class=> 'button button-primary button__slim send__feedback modal-trigger', 'data-target'=>'modal4'+content.id.to_s) %> 

die von im Modal

<%= form_for(Comment.new, url: contents_comments_path, remote: true) do |f| %> 
... 
<%end%> 

die comments_controller:

def create 
    @comment = Comment.new(comment_params) 
    @comment.update_attributes(rating: params[:rating]) 
end 

und die create.js.erb

$('#modal4<%[email protected]_id%>').closeModal(); 
Verwandte Themen