NoD*_*ame 6 elixir phoenix-framework
假设我有一个模块MyApp.User,它有以下方法:
def update_some_counter(user) do
from(u in MyApp.User , where: u.id == ^user.id)
|> Repo.update_all(inc: [some_counter: 1])
end
Run Code Online (Sandbox Code Playgroud)
有没有办法MyApp.User在上面的代码中更改一些检索当前模块的方法?
Jos*_*lim 16
帕特里克的答案是正确的:你可以使用__MODULE__.但是,我建议您在模型中的所有查询函数接收查询作为参数(请参阅此处:http://blog.drewolson.org/composable-queries-ecto/)并且不要在模型中调用存储库.
保留调用存储库的行为,这是一个副作用,对集成层,如控制器,什么不是.