Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails-可能存在不匹配的约束:[:id]_Ruby On Rails_Ruby_Heroku_Gmail_Actionmailer - Fatal编程技术网

Ruby on rails RubyonRails-可能存在不匹配的约束:[:id]

Ruby on rails RubyonRails-可能存在不匹配的约束:[:id],ruby-on-rails,ruby,heroku,gmail,actionmailer,Ruby On Rails,Ruby,Heroku,Gmail,Actionmailer,我发布了一个运行在Heroku上的RoR应用程序,我已经添加了我所有的客户。一切正常,但有几个客户我就是无法添加,因为它给我带来了500个错误:“ActionView::Template::error(没有路由匹配{:action=>“edit”,:controller=>“account\u activations”,:email=>”customer@customer.com“,:id=>nil},可能的不匹配约束:[:id]):”我几乎可以添加所有约束。 发生了什么事 以下是我的创建客户端

我发布了一个运行在Heroku上的RoR应用程序,我已经添加了我所有的客户。一切正常,但有几个客户我就是无法添加,因为它给我带来了500个错误:“ActionView::Template::error(没有路由匹配{:action=>“edit”,:controller=>“account\u activations”,:email=>”customer@customer.com“,:id=>nil},可能的不匹配约束:[:id]):”我几乎可以添加所有约束。 发生了什么事

以下是我的创建客户端控制器:

def create
@client = Client.new(client_params)
if @client.save
  newUser = @client.create_user(name: @client.name,
               email: @client.email,
               password: "PASSWORD",
               password_confirmation: "PASSWORD",
               role:  "client")
  newUser.send_activation_email
  redirect_to root_url
else
  render 'new'
end
end

找到了错误。在客户端验证中,我的名称长度为255,而在用户验证中,我的名称长度为50。我的一些客户的名字超过50个字符。在我的控制器中,我只是用if语句验证是否保存了客户端,而不是用户。该用户未能按照@mikej所说的方式创建,因此我将用户名验证长度也更改为255,现在可以使用了。
谢谢

从日志中放入完整的错误跟踪看起来您的
用户
模型上的一个验证失败,因此用户无法保存。在
User
上的验证是什么?@mikej这就是我意识到的。。。用户的名称验证长度小于客户的名称验证长度。让我看看更改是否有效。
{…,:id=>nil}
,问题是您如何请求加载该模板。@Aldo错误来自何处?发布完整错误,而不仅仅是最后一行。客户为什么不储蓄呢?同样,发布完整信息——在本例中是
客户机
模型和
客户机参数