我正在开发一个 rails 项目,如果用户已登录,我将通过 JQuery 从电子邮件字段自动填写表单。我正在使用设计进行身份验证。
var user_signed_in = "<%= current_user.blank? %>";
if (!user_signed_in){
var user_signed_in = "<%= current_user.email %>";
$('input#inquiry_from_email').val(user_signed_in);
}
根据代码,不应评估 if 块内的内容,但在访客用户的情况下,我收到未定义的方法 'email' for nil class 错误。
如果current_user.blank?被评估为 false 并且我事先在 if 块中检查它,我不明白为什么 if 中的语句会被评估。
此代码将被执行,因为您在 JavaScript 代码中有 ruby 代码。当页面被提供时,它将执行 JavaScript 代码。您需要将整个代码放在 if 块中
<% if current_user %>
var user_signed_in = "<%= current_user.email %>";
$('input#inquiry_from_email').val(user_signed_in);
<% end %>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句