SELECT * FROM members WHERE name LIKE '%hoge%';のようなLIKE句の文字列を変数にしたい時の方法です。 リクエストパラメータの、wordというパラメータを利用する場合: def index(conn, params) do query = from member in members, where: like(member.name, ^("%#{params['word'}%")), select: id,name,email query |> Repo.all end(参考) 直接SQL文に記述することも出来ます。 {:ok, result} = Ecto.Adapters.SQL.query(Repo, "SELECT id,name,email FROM members WHERE name LIKE '%#{word}%' ",[])
最近PhoenixというElixir製のWAFを勉強している。生産性とスケーラビリティをここまで両立できているのかと感心している。データベース操作には、EctoがRailsのActiveRecordに相当するものだが、オブジェクトではないのでORMではない。もっとシンプルな構成をしていて、データベース操作やクエリの組み立てを関数合成のようにできるようになっている。Elixirではマクロを利用することで抽象構文木を操作することができる。例えばElixirのunlessという構文はマクロで定義されている。つまり、自分でもシンタックスを定義できるということだ。そのおかげでEctoでは、SQLのシンタックスのようなエレガントなAPIを提供することができている。 Ectoはデータベース操作用途に作られたプログラミング言語のような美しさを兼ね備えているのだ。 Ectoの基本構成 Ecto.Repo こ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く