2
我想用coffeescript和jquery做單個帖子,但我的腳本沒有處理成功回調。我的ajax帖子與coffeescript不處理成功回調
* cards_controller.js.coffee *
if $('form').attr('action') == '/cards' alert "Hey ho" $('#add_card').click (e) ->
e.preventDefault()
$.ajax '/cards',
type: 'PUT' #Tried POST also
dataType: 'json'
error: (jqXHR, textStatus, errorThrown) ->
console.log textStatus
success: (res) ->
console.log "Card name: " + data.card.code + "\nPoints: " + data.points
complete: (jqXHR, textStatus) ->
console.log "Status: " + textStatus
index.html.erb
<%= form_tag url_for(:controller => 'cards', :action => 'create'), :remote => true %>
並且將所生成JavaScript是以下各項之一:
(function() {
if ($('form').attr('action') === '/cards') {
alert("Hey ho");
$('#add_card').click(function(e) {
e.preventDefault();
return $.ajax('/cards', {
type: 'POST',
dataType: 'json',
error: function(jqXHR, textStatus, errorThrown) {
return alert(textStatus);
},
success: function(res) {
console.log("Card name: " + data.card.code + "\nPoints: " + data.points);
return $('#card-list > tbody:last').append('<tr>test</tr><tr>uauauiua</tr>');
},
complete: function(jqXHR, textStatus) {
return console.log("Status: " + textStatus);
}
});
});
}
}).call(this);
* cards_controller .rb *
def create
card = Card.find_by_code(params[:code])
if card && card.user.nil?
current_user.add_card(card)
else
return render :status => 401, :json => { :message => "O cartão não existe ou já está cadastrado"}
end
respond_to do |format|
format.js { render json: { :card => card, :points => card.card_business_points.sum("points") } , content_type: 'text/json' }
end
end
該請求成功地連接到控制器並正確創建卡。問題是在Chrome上調試它似乎不處理回調並且不記錄。
請問有人可以幫助這個嗎?
您不能直接使用方法'PUT'。 [我要如何將數據用導軌的jQuery] [1] [1]:http://stackoverflow.com/questions/907910/how-do-i-put-data-to- rails-using-jquery – Oleg
@Oleg:你會注意到這個問題是從2009年開始的(例如幾百萬年前的互聯網)。 Rails 3很樂意與PUT一起工作。 –
我也試過帖子,但沒有成功! – felipeclopes