所以我有一个基本的控制器,我想找到一个用户并返回json。
这很好用
User.find_by(email: "foo@bar.com") => #<User>
这不起作用
User.find_by(email: params[:email]) => nil
路线设置为
get 'foo/:email' => 'foo#bar'
当我记录params的值时,我可以清楚地看到电子邮件被分配并具有值。
我还为我的用户身份验证安装了设备,所以我不确定这是否与它有关。
非常感谢帮助,我无法想出这一点。
修改1
刚想通了。我的路线params /:电子邮件,只是通过它是在route/foo@bar.com param只是拿起&#34; foo @ bar&#34;而不是.com
通过使用?email =来修正此问题。
答案 0 :(得分:-1)
请勿在您的路线中发送电子邮件。相反,你可以发送id。因为查询字符串不支持特殊字符。
如果您没有任何其他选项来发送ID,请使用您的电子邮件创建一个base64字符串,并将其发送到查询字符串中。