La mia configurazione: Rails 3.0.9, Ruby 1.9.2, jQuery 1.6.2jQuery post per Rails
Ho una forma che mostra più foto e commenti per un utente e desidero implementare in linea commentare.
<div id="newsfeed">
<div>
<div class="photo_title">Summer 2011</div>
<div class="newsfeed_photo">
<a href="..." /></a>
</div>
<textarea class="comment_box">Write a comment...</textarea>
</div>
<div>
<div class="comment_title">Seeing a movie</div>
<textarea class="comment_box">Write a comment...</textarea>
</div>
Desidero inviare un post AJAX sull'utente che preme il tasto Invio nel campo textarea. Ecco il javascript (incompleto) che ho finora
$('#newsfeed').delegate('.comment_box', 'keydown', function (event){
event.preventDefault();
$.post('/sub_comments', ...);
});
sto usando il metodo delegate
perché <div id='newsfeed'>
contenuti potrebbero essere sostituiti con un'altra chiamata AJAX. Quello che mi serve è la sintassi per il metodo jQuery post
supponendo che ho bisogno di passare alcuni parametri come ad esempio photo_id
, ecc. Supponiamo che io abbia un modo per accedere ai valori per i parametri, qual è la sintassi per la chiamata post
alla creazione di parametri nel modo Rails si aspettano loro
Ecco le guide standard i bit
sub_comments_controller.rb
def new
@sub_comment = SubComment.new
respond_to do |format|
format.html # new.html.erb
format.js
end
end
anche io non voglio usare la solita <%= form_for(@sub_comment, :remote => true) do |f| %>
per ogni linea commentare potrei aggiungere. Ho anche dato uno sguardo a Ryan Bates railscast ma il codice sembra obsoleto.
Ti dispiacerebbe spiegare perché si è scelto di non utilizzare un blocco 'respond_to' per favore? grazie! –
davvero utile, hai risparmiato il mio tempo, @ cmpolis, grazie mille –
@MarioZigliotto Lo ha fatto solo perché è più breve da scrivere. Le conseguenze sono che non può rendere html in questa azione, solo json. – DonPaulie