docs 状态
run(t, name, module, function, args) :: t when function: atom, args: [any]
但我不确定如何使用它。假设我有这个函数,我想在
Ecto.Multi
中运行:def some_fun(value, other_value) do
case value do
nil -> {:error, other_value}
_ -> {:ok, other_value}
end
end
这将如何运作?
最佳答案
我假设您希望 value
是“到目前为止的更改”,而 other_value
是您在调用 Multi.run/5
时指定的值。在这种情况下,如果您的函数位于名为 Foo
的模块中:
defmodule Foo do
def some_fun(value, other_value) do
case value do
nil -> {:error, other_value}
_ -> {:ok, other_value}
end
end
end
那么你的
Multi.run/5
调用将是:Multi.run(multi, name, Foo, :some_fun, [other_value])
这相当于以下
Multi.run/3
调用:Multi.run(multi, name, fn value -> Foo.some_fun(value, other_value) end)
关于Elixir Ecto : Could someone give an example of Ecto. Multi.run/5,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40746936/