jQuery ajax发布时出现SystemStackError(堆栈级别太深)
我有一个表单,当用户在文本字段中输入一些值时,我想自动填充其他字段,但它总是返回SystemStackError(堆栈级别太深)。以下是文件: routes.rbjQuery ajax发布时出现SystemStackError(堆栈级别太深),jquery,ruby-on-rails,ajax,ruby-on-rails-4,Jquery,Ruby On Rails,Ajax,Ruby On Rails 4,我有一个表单,当用户在文本字段中输入一些值时,我想自动填充其他字段,但它总是返回SystemStackError(堆栈级别太深)。以下是文件: routes.rb scope :places, controller: :places, as: :places do post :postcode, action: :postcode, as: :postcode end form.html.erb <form> <input type="text" class=
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>
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\u controller中的第4行是place=place.where(邮政编码:postcode)。第一行
我不知道我做错了什么。希望有人能帮助我 您得到的是SystemStackError(堆栈级别太深)
,因为您的操作名称是postcode
,并且您的对象变量名称/方法也被命名为postcode
place = Place.where(postcode: postcode).first
传入postcode
属性时出错,因为该属性与方法/操作同名
要修复此错误,请重命名操作和路由名称。非常诚实的错误。谢谢!
place = Place.where(postcode: postcode).first