作为我看到的表格的一部分:
<%= 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:错误:缺少FROM-clause条目表&#34; id&#34;
我不确定导致此错误的原因。在debugger
行之前放置@user
即可确认params[:email]
的值为debugger
。但是如果我输入User.find(email: params[:email])
,也会在 WorkBook.WorkSheets[1].Select;
WorkBook.WorkSheets[1].Tab.Color := 255;
WorkBook.WorkSheets[1].Tab.TintAndShade := 0;
中返回上面的输入。可能导致错误的原因是什么?
答案 0 :(得分:3)
您可以尝试使用find_by
代替find
def create
@user = User.find_by(email: params[:email])
答案 1 :(得分:2)
以下是更新的副本:
def create
@user = User.where(email: params[:email]).first
end
def create
@user = User.where(email: params[:email])
答案 2 :(得分:2)
PG :: UndefinedTable:错误:缺少表“id”
的FROM子句条目
默认情况下,find
会查找id
。您需要使用find_by
@user = User.find_by(email: params[:email])