小编Cra*_*ein的帖子

如何在将Ecto变更集插入仓库之前修改它?

我是凤凰城/ Elixir的新手,我正试图围绕变革集团.

我知道它包含一组用于创建或更新模型的更改.

我想知道的是,在将更改推送到数据库之前,是否以及如何修改更改.

我的用例如下:

  • 我有一个表单,允许人们在数据库中创建新的艺术家.
  • 在这种形式中有一个专业领域.
  • 在创建艺术家之前,我想用","将专业字段拆分为一个字符串数组

由于不变性约束,我甚至不确定是否可以直接修改变更集,但我可以创建另一个变更集以插入仓库.

欢迎任何建议,并毫不犹豫地指出我可能正在做的不良做法或愚蠢的事情!

编辑以下评论:我正在寻找类似的东西:

defp put_specialty_array(changeset) do
  case changeset do
    %Ecto.Changeset{valid?: true, changes: %{specialty: spec}} ->
      put_change(changeset, :specialty, String.split(spec, ","))
    _ ->
      changeset
  end
end
Run Code Online (Sandbox Code Playgroud)

elixir ecto phoenix-framework

9
推荐指数
1
解决办法
4258
查看次数

在AngularJS中有条件地注入服务

我已经定义了这样的服务:

angular.module('myApp').service('myService', [
'$rootScope',
...
...
Run Code Online (Sandbox Code Playgroud)

我希望我的服务只为新用户实例化(即今天user.createdAt>).

那么有没有办法有条件地注入我的服务或至少破坏我的服务,如果用户是旧的,没有任何副作用.

angularjs typescript

5
推荐指数
1
解决办法
2475
查看次数

标签 统计

angularjs ×1

ecto ×1

elixir ×1

phoenix-framework ×1

typescript ×1