2
我有一個窗體,當用戶在文本字段中輸入一些值我想自動填充其他字段,但它一直返回SystemStackError(堆棧級別太深)。這是文件:SystemStackError(堆棧級別太深)當jQuery ajax後
的routes.rb
scope :places, controller: :places, as: :places do
post :postcode, action: :postcode, as: :postcode
end
form.html.erb
<form>
<input type="text" class="input_postcode">
<input type="text" class="input_state">
</form>
main.js
$(document).on('change', ".input_postcode", function(e) {
e.stopPropagation();
e.preventDefault();
var postcode = $(this).val();
$.post('places/postcode', { postcode: postcode }, function(data) {
$(".input_state").val(data.state);
return false;
}, 'json');
return false;
});
places_controller.rb
def postcode
place = Place.where(postcode: postcode).first
state = place.state.name
respond_to do |format|
format.js { render json: { state: state } }
end
end
我得到這個結果在控制檯:
SystemStackError (stack level too deep):
app/controllers/places_controller.rb:4:in `postcode'
app/controllers/places_controller.rb:4:in `postcode'
app/controllers/places_controller.rb:4:in `postcode'
app/controllers/places_controller.rb:4:in `postcode'
app/controllers/places_controller.rb:4:in `postcode'
app/controllers/places_controller.rb:4:in `postcode'
app/controllers/places_controller.rb:4:in `postcode'
app/controllers/places_controller.rb:4:in `postcode'
app/controllers/places_controller.rb:4:in `postcode'
app/controllers/places_controller.rb:4:in `postcode'
app/controllers/places_controller.rb:4:in `postcode'
app/controllers/places_controller.rb:4:in `postcode'
(keeps going the infinite loop...)
在places_controller線4是place = Place.where(postcode: postcode).first
線。
我不知道我做錯了什麼。希望可以有人幫幫我!
非常誠實的錯誤。非常感謝! – Bengala