Ruby on Rails-可能无法匹配的约束:[:id]

时间:2018-07-29 16:46:21

标签: ruby-on-rails ruby heroku gmail actionmailer

我正在发布在Heroku上运行的RoR应用程序,并且一直在添加所有客户。一切都很好,但是我不能添加一些客户,因为它引发了500错误,我说:“ ActionView :: Template :: Error(没有路由与{:action =>” edit“,:controller => “ account_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

1 个答案:

答案 0 :(得分:0)

发现错误。通过客户验证,我的名称长度为255,而在用户验证中,我的名称长度为50。一些客户的名称长度超过50个字符。在我的控制器中,我只是使用if语句验证是否保存了客户端,但没有保存用户。用户无法按照@mikej的指示进行创建,因此我将用户名验证长度也更改为255,现在可以使用了。 谢谢!