标签: elixir

Elixir中的集成测试 - 如何从单元测试中过滤掉

我想从Elixir中的单元测试中分离出集成测试.我发现Elixir mix文档有一个关于过滤器的部分,并描述了我想要做的事情.

然后将下面的行添加到appdir/test/test_helper.exs中

# Exclude all external tests from running  
ExUnit.configure exclude: [external: true]
Run Code Online (Sandbox Code Playgroud)

那么一个标签如何测试为"外部"?

testing elixir

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

如何限制凤凰​​城某些路线的访问?

我有一个小凤凰应用程序,允许用户登录并查阅他们的个人资料.我使用了以下简单路线:

resources "/users", MyApp.UserController
Run Code Online (Sandbox Code Playgroud)

但这允许每个用户通过:index操作查看用户列表,以及删除或更新任何用户.

限制访问管理员的最简单方法是什么?我应该在每个动作前加一张支票吗?或者我应该创建一个"/admin"可以处理这些操作的资源?推荐的方式是什么?

elixir phoenix-framework

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

如何使用Elixir Ecto中的"between"创建SQL

我想使用Elixir Ecto中的关键字"between"创建一个SQL.

我知道如何使用创建一个SQL like

where: like(t.descript, ^some_description)

但是,当我尝试以同样的方式做到这一点 like

where: between(t.start_date, ^start_date, ^end_date),

我收到了"无效"错误信息

** (Ecto.Query.CompileError) `between(t.start_date(), ^start_date, ^end_date)` is not a valid query expression.**
Run Code Online (Sandbox Code Playgroud)

我怎么能以正确的方式做到这一点?

提前致谢!!

between elixir ecto

9
推荐指数
2
解决办法
1738
查看次数

HTTPOISON - 在elixir中插入body参数

我正在尝试做一个http请求

def getPage() do
    url = "http://myurl"
    body = '{
              "call": "MyCall",
              "app_key": "3347249693",
              "param": [
                  {
                      "page"          : 1,
                      "registres"     : 100,
                      "filter"        : "N"
                  }
              ]
             }'

    headers = [{"Content-type", "application/json"}]
    HTTPoison.post(url, body, headers, [])
end
Run Code Online (Sandbox Code Playgroud)

这对我很有用.

我的问题是 - 如何在body请求中插入变量.含义:

 def getPage(key, page, registers, filter) do
    url = "http://myurl"
    body = '{
              "call": "MyCall",
              "app_key": key,
              "param": [
                  {
                      "page"          : page,
                      "registres"     : registers,
                      "filter"        : filter
                  }
              ]
             }'

    headers = [{"Content-type", "application/json"}]
    HTTPoison.post(url, body, headers, …
Run Code Online (Sandbox Code Playgroud)

http elixir

9
推荐指数
2
解决办法
5756
查看次数

在没有Ecto的情况下使用Phoenix Framework

我正在开发一个带有由Phoenix支持的Web界面的应用程序,我正在探索当前SQLite(及其Ecto驱动程序)的替代存储方法(是的,我听说过PGSQL,不,我不愿意使用它.)

我想使用LevelDB和H2LevelDB,它在Github上有一个Erlang驱动程序

然而,在编译时我意识到Phoenix似乎很依赖Ecto,即使在负责渲染eex模板的模块中也是如此.我发现有点可怕,有点奇怪,同时有点烦人.那么,从预先生成的文件中盲目地清除对Ecto的所有引用是否安全,或者我应该为我的Web UI切换到其他内容?

elixir leveldb ecto phoenix-framework

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

Elixir和Ecto中的DateTime.now

我想在没有第三方库的情况下获得Phoenix/Elixir的当前日期时间戳.或者简单地说,我想要类似的东西DateTime.now().我怎样才能做到这一点?

elixir ecto phoenix-framework

9
推荐指数
2
解决办法
7040
查看次数

如何获取客户端的IP地址?

我需要获取客户端的IP地址,这不起作用:

  def create(conn) do
    ip_address = conn.inet.ip_address
    # ....
Run Code Online (Sandbox Code Playgroud)

由于key :inet not found in: %Plug.Conn.我怎样才能获得IP地址呢?

elixir phoenix-framework

9
推荐指数
2
解决办法
3983
查看次数

Elixir中的变量赋值

我对Elixir中的变量赋值有疑问.在Erlang中,这会引发no match of right hand side value:

X = 4.
X = 2.
Run Code Online (Sandbox Code Playgroud)

但是,Elixir似乎完全可以为变量赋值不止一次.我很困惑模式匹配在Elixir中是如何工作的.Elixir如何区分模式匹配和变量赋值?根据我的理解,在Erlang中,它X是一个未绑定的变量,因此它可以与任何东西匹配,对吗?但是一旦绑定,模式匹配只有在与它相同的值时才有效X.那么Elixir与Erlang没有共享相同的未绑定变量概念吗?

erlang elixir

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

提取管道中元组的第二个元素

我希望能够在管道中提取元组的第N项,而不使用with或以其他方式分解管道.Enum.at除了元组不是枚举这一事实外,它会完美地工作.

这是一个激励人心的例子:

colors = %{red: 1, green: 2, blue: 3}
data = [:red, :red, :blue]
data 
|> Enum.map(&Map.fetch(colors, &1))
|> Enum.unzip
Run Code Online (Sandbox Code Playgroud)

这回来了{[:ok, :ok, :ok], [1, 1, 3]},假设我只想提取[1, 1, 3]

(对于这种特殊情况,我可以使用,fetch!但对于我不存在的实际代码.)

我可以补充一下

|> Tuple.to_list
|> Enum.at(1)
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点,不需要从每个元组创建一个临时列表?

pipeline tuples elixir

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

如何取Elixir中数字的平方根?

如何取Elixir中数字的平方根?似乎没有Math模块或任何东西,并且没有类似的功能sqrt().

elixir

9
推荐指数
2
解决办法
1471
查看次数

标签 统计

elixir ×10

phoenix-framework ×4

ecto ×3

between ×1

erlang ×1

http ×1

leveldb ×1

pipeline ×1

testing ×1

tuples ×1