我知道这个问题与Rails试图将[:street]
转换为整数有关,因为它将params([:address][:street])
视为数组而不是哈希。
以下是抛出错误的完整行:
@address = Address.where(street: params([:address][:street])).first_or_create
这应该从我的表单中获取嵌套的输入字段:address.street
并搜索表的地址。如果我在字符串中硬编码来搜索它,但是当我尝试从表单中传递一个参数时,它不起作用。
建议?
修改
给我错误的行已更新,现在显示为:
@address = Address.where(street: params[:address][:street]).first_or_create
它现在给了我:“未定义的方法`[]'为nil:NilClass”
解决:
我需要添加[:client]
,以便控制器知道找到[:address][:street]
。
工作线是:
@address = Address.where(street: params[:client][:address][:street]).first_or_create
现在它会在创建客户端时查看街道,如果街道在那里,它将传回该ID,以便我可以将其分配给客户端的address_id字段,否则它将创建一条新街道,如果它没有已经存在,并将传回该ID,供我使用。