0
EctoとPostgreSQLを使ってPhoenixアプリケーションで非常に基本的な全文検索を実装しようとしています。エラーEctoとPostgreSQLを使った全文検索でのエラー(undefined_table)
def search(conn, %{"q" => para}) do
search = User |> User.search(para) |> Repo.all
render(conn, "search.html", search: search)
end
と(User
フィールドの定義と一緒に)私の「モデル」ファイルに:私は私のコントローラを持っている一例とPostgreSQLのドキュメントに基づいて
def search(query, search_term) do
(from u in query,
where: fragment("to_tsvector(u.name) @@ plainto_tsquery(?)", ^search_term),
order_by: fragment("ts_rank(to_tsvector(u.name), plainto_tsquery(?)) DESC", ^search_term))
end
私はこれを取得していますエラー:
ERROR (undefined_table): missing FROM-clause entry for table "u"
は(name
がUser
分野の一つである)十分from u in query
、ありませんか?
私のテンプレートで '' <%[email protected]%>にアクセスしようとすると、それは今働いしかしだ、私はモデルからすべてのデータを取得していますので、私は別のエラーが表示されます。 'Phoenix.HTMLのリストとテンプレートには、バイト、バイナリ、またはその他のリストを表す整数だけが含まれている可能性があります。%MyProj.User {__ meta__:#Ecto.Schema.Metadata <:loaded、" users ">、contacts:" Tlm :22222222 "、詳細:nil、facebook:nil、id:16、inserted_at:#Ecto.DateTime <2016-10-03 13:55:30>、名前:" blabla "、updated_at:#Ecto.DateTime <2016- 10-03 13:55:30>、web_page:nil} '私は成功していないドット記法を使ってみました... –
'@ search'はリストです。リストから正確に何を印刷したいですか?あなたは 'for'のようなものを使うことができます: '<%= for user < - @search do%><%= user.name%><% end %>'。 – Dogbert
右私はまっすぐ考えることがあまりにも気になる!初めてSQLを使用し、それが決して得られないような気がする:)私は固まっていくにつれ、もっと集中的な質問をいくつか開きます。おかげでドッグベルト! –