【发布时间】:2015-10-30 17:04:19
【问题描述】:
作为我正在查看的表单的一部分:
<%= form_for(@invitation, method: :post, url: addinvite_path) do |f| %>
...
<label for="email", title="email"></label>
<%= email_field_tag :email, nil, placeholder: 'Email', autocomplete: 'off', required: true %><br>
...
处理表单提交的邀请控制器方法:
def create
@user = User.find(email: params[:email])
...
提交表单会产生指向@user 行的错误:
PG::UndefinedTable: 错误:缺少表“id”的 FROM 子句条目
我不确定是什么导致了这个错误。在@user 行之前放置debugger 可以确认params[:email] 的值。而且在debugger 中,如果我输入User.find(email: params[:email]),它也会返回上面的输入。什么可能导致错误?
【问题讨论】:
-
尝试使用
find_by。@user = User.find_by(email: params[:email])
标签: ruby-on-rails ruby postgresql ruby-on-rails-4