Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 如何在模式中定义变量默认字段值?_Elixir - Fatal编程技术网

Elixir 如何在模式中定义变量默认字段值?

Elixir 如何在模式中定义变量默认字段值?,elixir,Elixir,在EXTO中,您可以通过指定诸如field:name、default:john之类的字段来提供默认值。在文档中,声明此默认值存储在编译时,并且Date.now或UUID.generate之类的东西不起作用 我的问题是:我们如何创建这些变量默认值? 可以说“在创建结构后设置值”。但是,在使用虚拟字段时,这是不可能的。当你使用e。GRepo.allMyModel或任何其他查询命令,将虚拟字段设置为其默认固定值 如何创建变量架构字段默认值?这是不可能的。EXTO只定义一个结构,Elixir结构在编译时

在EXTO中,您可以通过指定诸如field:name、default:john之类的字段来提供默认值。在文档中,声明此默认值存储在编译时,并且Date.now或UUID.generate之类的东西不起作用

我的问题是:我们如何创建这些变量默认值? 可以说“在创建结构后设置值”。但是,在使用虚拟字段时,这是不可能的。当你使用e。GRepo.allMyModel或任何其他查询命令,将虚拟字段设置为其默认固定值


如何创建变量架构字段默认值?

这是不可能的。EXTO只定义一个结构,Elixir结构在编译时展开


您可以通过显式使用函数生成具有默认值的结构来解决此问题,或者通过put_change和类似方法在变更集函数中执行此操作。

这是不可能的。EXTO只定义一个结构,Elixir结构在编译时展开


您可以通过显式使用函数生成具有默认值的结构来解决此问题,或者通过put_change和类似方法在变更集函数中执行此操作。

我不确定我是否理解此问题,但您可以完全删除默认值,并在使用Repo.all检索所有记录后,或者如果您想保留这些记录,只需为其设置默认值默认值,然后在检索后重写它。@JustMichael如果这样做,代码就会紧密耦合:或者所有使用模型的地方都需要知道默认值,或者模型需要知道从数据库中查询它的方式。我不确定我是否理解了这个问题,但您可以完全删除默认值,并在使用Repo.all检索所有记录后将其设置为所有记录。或者,如果您希望保留默认值,则只需在检索后重写即可。@JustMichael如果您这样做,您可以将代码紧密地耦合在一起:要么所有使用模型的地方都需要知道默认值,要么模型需要知道从数据库查询它的方式。