我正在开发一个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块中的内容不应该被评估,但是我得到了未定义的方法&#39; email&#39;如果是来宾用户,则为nil类错误。
如果是current_user.blank?被评估为false并且我在if块中检查它,我不明白为什么if中的语句被评估。
答案 0 :(得分:1)
此代码将被执行,因为您在JavaScript代码中有ruby代码。当页面被提供时,它将执行JavaScript代码。您需要将整个代码放在if块
中<% if current_user %>
var user_signed_in = "<%= current_user.email %>";
$('input#inquiry_from_email').val(user_signed_in);
<% end %>