【发布时间】:2017-05-18 15:55:54
【问题描述】:
在 Phoenix 框架应用程序中,我有一个模型 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
在 Phoenix,我什至无法从数据库中获取所有产品的列表。这是任务代码:
lib/mix/tasks/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
当我运行此任务时,我收到以下错误消息:
** (UndefinedFunctionError) function Ecto.Queryable.__using__/1
is undefined or private
在这个混合任务中我需要做什么才能从数据库中获取所有产品?
【问题讨论】:
-
不应该是
App.Product而不是Product吗? -
我更新了代码。
标签: elixir phoenix-framework ecto