簡體   English   中英

PG :: UndefinedTable:錯誤:缺少FROM子句

[英]PG::UndefinedTable: ERROR: missing FROM-clause

作為我在視圖中的表單的一部分:

<%= 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] 但是如果我輸入User.find(email: params[:email])它也會在debugger返回上面的回車。 可能導致錯誤的原因是什么?

您可以嘗試find_by而不是find

def create
  @user = User.find_by(email: params[:email])

這是更新后的副本:

對於單一記錄

def create
  @user = User.where(email: params[:email]).first
end

對於多記錄

 def create
   @user = User.where(email: params[:email])

PG :: UndefinedTable:錯誤:缺少表“id”的FROM子句條目

默認情況下, find會查找id 你需要使用find_by

@user = User.find_by(email: params[:email])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM