win*_*yer 3 elixir ecto phoenix-framework
在Phoenix Framework应用程序中,我有一个Product该领域的模型name.我想创建一个列出所有产品名称的混合任务.
在Ruby on Rails中,这将是解决问题的代码:
namespace :list do
desc "List all products"
task products: :environment do
Product.all.each do |product|
puts product.name
end
end
end
Run Code Online (Sandbox Code Playgroud)
在凤凰城,我甚至无法从数据库中获取所有产品的列表.这是任务代码:
LIB /混合/任务/ list.product.ex
defmodule Mix.Tasks.List.Product do
use Mix.Task
import Mix.Ecto
alias App.Repo
alias App.Product
def run(_args) do
products = Repo.all(Product)
end
end
Run Code Online (Sandbox Code Playgroud)
当我运行此任务时,我收到此错误消息:
** (UndefinedFunctionError) function Ecto.Queryable.__using__/1
is undefined or private
Run Code Online (Sandbox Code Playgroud)
在此混合任务中,如何从数据库中获取所有产品?
ensure_started(Repo, [])在run方法的顶部添加.您可能还想要import Ecto.Query一些查询表单.
defmodule Mix.Tasks.List.Product do
use Mix.Task
import Mix.Ecto
import Ecto.Query
alias App.Repo
alias App.Product
def run(_args) do
ensure_started(Repo, [])
products = Repo.all(Product)
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
558 次 |
| 最近记录: |