Ruby on rails 无法通过params中的电子邮件地址找到用户。无参数工作

Ruby on rails 无法通过params中的电子邮件地址找到用户。无参数工作,ruby-on-rails,ruby,devise,params,Ruby On Rails,Ruby,Devise,Params,所以我有一个基本的控制器,我想在这里找到一个用户并返回json 这个很好用 User.find_通过电子邮件:foo@bar.com=> 这行不通 User.find_byemail:params[:email]=>nil 路线是这样设置的 获取'foo/:email'=>'foobar' 当我记录params的值时,我可以清楚地看到email被分配并且有一个值 我还为我的用户auth安装了designe,所以我不确定这是否与它有关 非常感谢你的帮助,我想不出这一点 编辑1 我刚想出来。my r

所以我有一个基本的控制器,我想在这里找到一个用户并返回json

这个很好用

User.find_通过电子邮件:foo@bar.com=>

这行不通

User.find_byemail:params[:email]=>nil

路线是这样设置的

获取'foo/:email'=>'foobar'

当我记录params的值时,我可以清楚地看到email被分配并且有一个值

我还为我的用户auth安装了designe,所以我不确定这是否与它有关

非常感谢你的帮助,我想不出这一点

编辑1

我刚想出来。my route params/:刚通过时的电子邮件是在route/foo@bar.com那个女工只是在接电话foo@bar而不是网站


改为使用?email=解决此问题。

不要在您的路线中发送电子邮件。您可以发送id,因为查询字符串不支持特殊字符


如果您没有其他发送id的选项,请在电子邮件中创建base64字符串,并以查询字符串的形式发送。

显示Rails控制台日志…测试将************参数[:email]放在控制台上,确保电子邮件在参数中。仔细查看日志会有所帮助,我浏览了一下电子邮件的.com部分。这几乎就是它,它正在发送foo@bar而不是全部foo@bar.com我最后不得不做?email=style参数,因为我说过查询字符串不支持特殊字符,因此,如果您没有任何其他发送id的选项,请在电子邮件中创建base64字符串,并以查询字符串的形式发送。如果您正确配置路由以绕过自动格式检测,则可以在路由中发送电子邮件地址点和所有点。