Params hash被解释为数组

时间:2014-11-30 20:46:32

标签: ruby-on-rails ruby nested-forms nested-attributes params

我知道这个问题与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,供我使用。

0 个答案:

没有答案