我正在学习如何将 ajax 与 rails 一起使用,除了一个持续存在的问题外,我没有遇到太多麻烦。我有一个用户过去使用过的地址的下拉列表。然后我有一个“使用新地址”按钮,它会显示一个模式地址表单。然后我想通过 ajax 提交该表单,然后将新地址添加到下拉列表中。
虽然我提交表单或创建地址没有问题,但由于某种原因,我无法在回调中访问创建访问的 ID。这是上下文的一些代码:
class AddressesController < ApplicationController
respond_to :js
def create
@address = current_user.addresses.build(params[:address])
@address.save
respond_with(@address)
end
end
这应该将数据提供给 create.js.erb。在那个文件中,我访问@address.city 或@address.state 没有问题,但是一旦我尝试访问@address.id,我的ajax 调用就开始出现500 服务器错误。我认为这可能意味着我必须将 id 添加到 address.rb 中的 attr_accessible,但这似乎也没有帮助。有什么我想念的吗?任何帮助将不胜感激。
编辑:我是个白痴。我没有意识到 escape_javascript 不应该用于整数,所以我将 @address.id 包裹在其中,导致错误。