Ich baue eine App mit Ruby on Rails. Die Version von Rails und Ruby sind wie oben aufgeführt.Wie kann ich Javascript/Jquery in Rails 4.2.4 mit Ruby 2.2.3 implementieren?
Mein Ziel ist es, JavaScript/Jquery in meine Mindmap-Indexansichten zu implementieren, so dass sie Informationen dynamisch in meine Seite einfügen können, ohne die gesamte Seite neu laden zu müssen. Es wird also ein Link sein, auf den geklickt wird, der das Mindmap-Formular anzeigt. Bei der Übergabe des Formulars sollte das Formular verschwinden und die neuen Daten an die angegebenen Div-Views angehängt werden. - Bisher konnte ich das Mindmap-Formular anzeigen, sobald ich auf den neuen Link klicke, aber das Formular verschwindet nicht bei der Einreichung des Formulars. Ich war in der Lage, dem Benutzer zu erlauben, die Informationen einzugeben und zu senden, aber die Informationen zeigen nur, nachdem ich eine volle Seite neu lade.
Ich habe eine Nummer versucht, aber nichts scheint zu helfen.
Jemand bitte helfen. Wenn du in Chicago wohnst, schulde ich dir ein Bier :).
Unten sind die Controller, js und Ansichten Datei.
class MindmapsController < ApplicationController
before_action :find_capsule, only: [:new, :index, :create, :show, :update, :destroy]
before_action :find_mindmap, only: [:show, :edit, :index, :update, :destroy]
before_action :authenticate_author!
def index
@mindmaps = Mindmap.all.order('created_at DESC')
end
def new
@mindmap = Mindmap.new
end
def create
@mindmap = Mindmap.new(mindmap_params)
if @mindmap.save
respond_to do |format|
format.html {redirect_to mindmaps_path , notice:"You have successfully created a Mindmap"}
format.js
end
else
render 'new'
end
end
def show
end
def edit
end
def update
if @mindmap.update(mindmap_params)
redirect_to @mindmap , notice:" You have successfully updated Your Mindmap"
else
render 'edit'
end
end
def destroy
@mindmap.destroy
redirect_to mindmaps_path
end
def find_mindmap
@mindmap = Mindmap.find_by(params[:id])
end
def find_capsule
@capsule = current_author.capsules.find_by(params[:id])
end
def mindmap_params
params.require(:mindmap).permit(:src, :src_purpose, :capsule_id, :profile_id)
end
end
JavaScript-Dateien befindet sich unter der Mindmap sind Ansichten, Ordner als FYI
new.js.erb
$("a#new_mindmap_link").hide().after("<%= j render('form')%>");
create.js.erb
$("form#new_mindmap").remove();
$("a#new_mindmap_link").show();
$("div#mindmap").append("<%= j render(@mindmaps) %>");
Mindmap Indexseite
Mindmap # Index
<%= link_to "Create Mindmap", new_mindmap_path, id:"new_mindmap_link", remote: true %>
<% @mindmaps.each do |mindmap| %>
<div class="mindmap">
<div>Source: <%= mindmap.src %></div>
<div class="meta">
<%= link_to time_ago_in_words(mindmap.created_at) + " ago" , mindmap %>
<span class="admin"><%= link_to "Edit", edit_mindmap_path(mindmap) %>
<%= link_to "Delete", mindmap , method: :delete, data: { confirm: "Are you sure you want to delete this Mindmap" } %>
</span>
</div>
</div>
<% end %>
Mindmap Formular
<div class="col-md-4 mindmap-container">
<%= simple_form_for @mindmap, remote: true do |f| %>
<%= f.input :src, as: :url, class:'form-control', label: false, placeholder:"Add a URL" %>
<%= f.input :src_purpose, as: :text, class: 'form-control', label: false, placeholder: "Add a description to your URL"%>
<%= f.input :capsule_id, label: false, collection: Capsule.all, default: 'Select a capsule', label_method: :title %>
<%= f.input :profile_id, label: false, collection: Profile.all, default: 'Select a Profile ID',label_method: :profile_name %>
<%= f.button :submit, class:'btn btn-primary' %>
<% end %>
</div>
hilft bist du hier eine Menge Code zeigt. Kannst du eingrenzen, wo dein Problem auftritt, und es etwas ausführlicher beschreiben? –
Ich habe ein Problem mit dem Javascript. Hier ist, was ich versuche, basierend auf einem Tutorial, das ich auf youtube gefunden habe, hier ist der Link. https://www.youtube.com/watch?v=FBxVN7U1Qsk, ich versuche das genau aber auf der Indexseite dieses Controllers grundsätzlich zu tun. –
Es klingt wie alles in Ihrem Code funktioniert, außer dass die Seite neu geladen werden muss, um einige jQuery auszuführen. Dies könnte ein Turbolink-Problem sein. Versuchen Sie [Entfernen von Turbolinks] (http://blog.steveklabnik.com/posts/2013-06-25-removing-turbolinks-from-rails-4) oder sehen Sie [diese Antwort] (http://stackoverflow.com/questions/18770517/rails-4-how-to-use-document-ready-with-turbo-links) für die Vermeidung von '$ (bereiten) Probleme bei der Verwendung von Turbolinks. –