Otóż mój problem dotyczy tzw. “inline editing” (tak to się chyba nazywa)
Posiadając testową aplikację z jedyną tabelą “comments”, posiadającą dwa pola “title” i “content”, chcę stworzyć możliwość edycji w sposób płynny przy pomocy ajaxa. Akcje są oczywiście przygotowane do odbierania requestów javascriptowych itp. ale problem leży w samym wywołaniu akcji. Otóż mając wygospodarowany specjalny div (id: ‘edit’), gdzie ma się renderować akcja, staram się ustawić link, który to pociągnie.
Tak więc próbując:
<%= link_to_remote, ‘Edycja’, :update => ‘edit’, :url => {:action => :edit, :id => comment.id} %>
dostaję typowy błąd, który pojawia się po zastosowaniu nieznanej akcji, czyli (unknown action… no action responded to 432, actions: index, show, new …). Oczywiście ów numer to id komentarza. Próbując różnych sposobów do dobrania się do tej akcji, a nawet wskazując mu na siłę metodę get:
<%= link_to_remote, ‘Edycja’, :update => ‘edit’, :url => edit_comment_path(comment) %>
<%= link_to_remote, ‘Edycja’, :update => ‘edit’, :url => edit_comment_path(comment), :method => :get %>
pojawiają się problemy, albo w starym stylu, albo w przypadku wskazania metody, w określonym divie ‘edit’ renderuje się skrypt javascriptowy, zajmujący się bodajże obsługą błędów. Wszystkie te błędy oczywiście pojawiają się w polu przeznaczonym do renderowania.
Zdaję sobie sprawę, że mogę się za to zabierać z rzyci strony, albo nawet się totalnie kompromituję. Niemniej jednak nie udało mi się nigdzie znaleźć odpowiedniego przykładu, który by w mniej lub bardziej zbliżony sposób pokazywał jak zrobić to co ja właśnie próbuję. Tak więc, moje pytanie brzmi. W jaki sposób odwołuję się źle do tej akcji. Jak inaczej działa to w link_to_remote i co ewentualnie jest dodawane do tego adresu, że aplikacja nie potrafi tej akcji wyrenderować. Jakie są najlepsze sposoby aby tego dokonać. Będę wdzięczny za stratę czasu na odpowiedź.
Serdecznie pozdrawiam.