Dies kann ziemlich einfach sein. Es gibt eine Menge Dinge, die das für dich tun (schau dir jQuery an).
Ich habe vor einiger Zeit etwas handcodiert (Entschuldigung für den schlecht geschriebenen Code).Sie fügt hinzu, und entfernen Sie Titel aus einer Playlist
Controller:
def add_track
unless session[:admin_playlist_tracks].include?(params[:recording_id])
session[:admin_playlist_tracks] << params[:recording_id]
end
render :partial => "all_tracks"
end
def remove_track
session[:admin_playlist_tracks].delete_if {|x| x.to_s == params[:recording_id].to_s }
render :partial => "all_tracks"
end
Behälter:
<div id="artist_recordings" class="autocomplete_search"></div>
Hinzufügen von Material:
<%= link_to_remote "Add",
:url => {:controller => :playlists, :action => :add_track, :recording_id => recording.id},
:update =>"all_tracks",
:complete => visual_effect(:highlight, 'all_tracks') %>
anzeigen/Entfernen von Material:
<%session[:admin_playlist_tracks].each do |recording_id|%>
<div style="margin-bottom:4px;">
[<%=link_to_remote "Remove",
:url => {:controller => :playlists, :action => :remove_track, :recording_id => recording_id},
:update =>"all_tracks"%>]
<%recording = Recording.find_by_id(recording_id)%>
<%=recording.song.title%> <br />
by <%=recording.artist.full_name%> (<%=recording.release_year%>)
</div>
<%end%>
Das mit mir gearbeitet, weil ich Session-Variablen verwenden könnte. Aber sei vorsichtig! In einigen Fällen, in denen ein Benutzer verschiedene Fenster mit dem gleichen Formular hat, wird dies sicherlich unterbrochen, da es einen gleichzeitigen Zugriff auf die Sitzungsvariable geben wird.
Es fehlen einige Teile, da ich auch eine automatische Vervollständigung mache, aber ich hoffe, das wird Ihnen helfen, die große Idee zu bekommen.
Ja, das mache ich gerade. Es scheint in Ordnung zu sein, ich wünschte nur, ich könnte einen Weg finden, es von einem Teil zurückzuholen. Die richtige Syntax für die Verwendung von Hilfsmethoden in Controllern ist für mich nicht intuitiv (wenn überhaupt möglich). Vielen Dank. –