小编Jas*_*n G的帖子

Elixir's Phoenix的Catch-all/wildcard路线?

在Phoenix路由器中是否有可以充当通配符的路由?

elixir phoenix-framework

47
推荐指数
1
解决办法
5321
查看次数

以编程方式预加载has_many,通过:在Elixir Ecto中

我正在尝试以编程方式将预加载附加到我的某个具有has_many, through:关系的模型的查询中.

我的模块:

defmodule MyApp.Chemical do
  use MyApp.Web, :model

  schema "chemicals" do
    has_many :company_chemicals, MyApp.CompanyChemical
    has_many :companies, through: [:company_chemicals, :companies]

    field :name, :string
  end

  def with_companies(query) do
          from  chem      in query,
     left_join: comp_chem in assoc(chem, :company_chemicals),
          join: company   in assoc(comp_chem, :company),
       preload: [companies: company]
  end

end

defmodule MyApp.Company do
  use MyApp.Web, :model

  schema "companies" do
    has_many :company_chemicals, MyApp.CompanyChemical
    has_many :chemicals, through: [:company_chemicals, :chemicals]

    field :name, :string
  end
end

defmodule MyApp.CompanyChemical do
  use MyApp.Web, :model

  schema "company_chemicals" do
    belongs_to …
Run Code Online (Sandbox Code Playgroud)

elixir ecto phoenix-framework

11
推荐指数
1
解决办法
4287
查看次数

Erlang/Elixir守卫和arity

有没有办法看到函数的守卫而没有看到源代码?

给出一个示例函数(在Elixir中):

def divide(x, y) when y != 0 do
  x / y
end
Run Code Online (Sandbox Code Playgroud)

怎么会弄清楚在没有访问源代码的情况下有一个分区/ 2的守卫,以及如何找到关于该守卫的信息或者后卫对模式匹配的预期?

我正在观看来自Ruby Conf 2014的Chris McCord(Elixir凤凰框架的创建者)的演讲.在演讲中,克里斯正在描述警卫,并且有人问是否有办法检查可以显示该功能的警卫的功能.

这是谈话的问题:

https://www.youtube.com/watch?v=5kYmOyJjGDM&t=5188

视频t =时间后不久就会问这个问题.

erlang elixir arity pattern-guards

2
推荐指数
1
解决办法
396
查看次数

Process.whereis(:user) 返回一个 pid。这个pid是什么?

在 Elixir 的 repl 中,iex当我输入Process.whereis(:user)它时会返回一个pid. 这个:user过程是什么?它有什么作用?它是什么状态?

它似乎被永久阻止或休眠,因为我无法通过:user |> Process.whereis() |> :sys.get_state().

erlang elixir erlang-otp

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