link_to_remote oraz image_submit_tag użycie w kontrolerze

Witam

Piszę swoją pierwszą aplikację w ROR z użyciem AJAX. W widoku mam takie coś:

[code]<% for i in @karteczki %>

<%= link_to_remote image_submit_tag("close-button.png", :confirm=>"Czy aby napewno?"), :update => "przypominacz", :url =>{ :action => "usun_karteczke", :id=> i.id} %>
<h1> <%= i.tytul  %>  </h1>
<h2><%= i.data  %></h2>
<%= i.tresc  %>
<%end%>[/code] a w kontrolerze w metodzie usun_karteczke próbuję wywołać coś podobnego co zbuduje mi

[code]calosc = “”
for i in @karteczki
calosc +=’

’;
   calosc += '<div id="element_zamknij">' + link_to_remote image_submit_tag("close-button.png", :confirm=>"Czy aby napewno?"), :update => "przypominacz", :url =>{ :action => "usun_karteczke", :id=> i.id}   + '</div>'

   calosc += '<h1>' + i.tytul + '</h1>'
   calosc += '<h2>' + i.data + '</h2>'
calosc +=  i.tresc

calosc += ‘


end[/code]
Wywala błąd przy link_to_remote i image_subm…

JAk sobie z czymś takim poradzić, a może hmm źle robię.

Generalnie to mam div-a przypominacz wktórym mam sporo elementów. Kliknięcie w link powinno usunąć dany wpis z bazy i zaktualizować widok.

Pozdrawiam, Dziękuję za odpowiedzi i cierpliwość ;]

Hmmm. Interesujące :stuck_out_tongue:

Jedno pytanie: Programowałeś wcześniej w PHP?

Wiem na czym polega MVC :stuck_out_tongue: Programowałem trochę w PHP :stuck_out_tongue: Ale więcej w Javie/

Tak więc nie wiem jak sobie z tym dobrze poradzić :stuck_out_tongue:

Robię to na podstawie:

http://onlamp.com/onlamp/2005/06/09/rails_ajax.html

Koleś podobnie robi uzupełnianie listy:

def add_item render_text "<li>" + params[:newitem] + "</li>" end
oraz

<%= form_remote_tag(:update => "my_list", :url => { :action => :add_item }, :position => "top" ) %>
Tak więc patrząc na filozofię ROR wiem że robię źle.

Może ktoś pomoże?

Ten kod nie zadziała:

link_to_remote image_submit_tag("close-button.png", :confirm=>"Czy aby napewno?"), :update => "przypominacz", :url =>{ :action => "usun_karteczke", :id=> i.id}
image_submit_tag umieszcza się w formularzach - masz tu zwykłego linka . Użyj image_tag, a :confirm przenieś do opcji link_to_remote.

Ten kod z kontrolera powinien trafić do partiala.
http://apidock.com/rails/ActionView/Partials
Partial powinien renderować pojedynczy obiekt, a więc mniej więcej kod to ze środka bloku for, oczywiście bez obecnego dopisywania do stringa.

Następnie w kontrolerze:
http://apidock.com/rails/ActionController/Base/render - ‘Rendering partials’, opcja :collection.

Jeśli odpowiednio nazwiesz model tej ‘karteczki’ - np. ‘Note’, partial ‘_note.html.erb’, umieścisz go wśród widoków tego kontrolera to wystarczy jeśli zrobisz

# inside action... notes = Note.all(...) render notes
BTW Nazywaj zmienne, klasy itd po angielsku. Pomoże :slight_smile:

@axlinux
Poszukaj nowszego źródła wiedzy, bo to co podałeś ma już ponad 4 lata, a w przypadku RoR to szmat czasu :slight_smile:

Polecam Rails Way, ewentualnie Agile Web Development with Rails
Zainteresuj się też unobtrusive javascript i porzuceniem helperów ajaxowych na rzecz czystego kodu Javascript .

pzdr

Dziękuję wszystkim :slight_smile:

Często się łapię na tym, że używam czegoś co okazało się że już tego nie ma i aplikacja nie rusza.

Przeczytałem jedną książkę do RoR, w sumie była mało obszerna ale na początek wystarczyła.

Modele nazywam po angielsku ale chyba przydało by się resztę również.

Już mam. Jakie to jest proste :smiley:

To polecam na początek: http://www.apohllo.pl/guides/index.html

Część nawet jest przetłumaczona na język polski z inicjatywy forumowego kolegi, apohllo. Naprawdę dobra robota i wspaniała rzecz na początek przygody z RoR