Ruby on rails RubyonRails-可能存在不匹配的约束:[:id]
我发布了一个运行在Heroku上的RoR应用程序,我已经添加了我所有的客户。一切正常,但有几个客户我就是无法添加,因为它给我带来了500个错误:“ActionView::Template::error(没有路由匹配{:action=>“edit”,:controller=>“account\u activations”,:email=>”customer@customer.com“,:id=>nil},可能的不匹配约束:[: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]):”我几乎可以添加所有约束。 发生了什么事 以下是我的创建客户端
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错误来自何处?发布完整错误,而不仅仅是最后一行。客户为什么不储蓄呢?同样,发布完整信息——在本例中是客户机
模型和客户机参数
。