私はフォームを持っていて、ユーザがテキストフィールドに値を入力すると、他のフィールドを自動入力したいが、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...)
ライン4 places_controllerにはplace = Place.where(postcode: postcode).first
ラインです。
私は何が間違っているのか分かりません。誰かが私を助けることを願っています!
非常に正直な間違いです。どうもありがとう! – Bengala