标签: iex

是否有类似于Rails控制台的Phoenix

我正在学习Phoenix和Elixir,我来自Ruby/Rails,我在REPL中工作,pry用来检查我的数据库和应用程序状态.

我正试图弄清楚如何在Phoenix应用程序中与我的数据库和模型进行交互.我知道iex,但我不知道如何使用它从repl检查我的应用程序的数据库.我是否需要每次从repl使用ecto连接到它?有没有rails console等价物.我检查了Phoenix文件,Elixir Dose和Ecto repo,但找不到我要找的东西.我错过了什么吗?

编辑:根据下面的答案,我发现了ecto文档的这一部分.基于此我可以做类似的事情ArticlesApi.Repo.all ArticlesApi.Article

elixir ecto phoenix-framework iex

89
推荐指数
3
解决办法
2万
查看次数

Elixir睡眠/等待1秒

如何睡觉/等待一秒钟?

我能找到的最好的东西是这样的(在iex中):

IO.puts "foo" ; :timer.sleep(1); IO.puts "bar"
Run Code Online (Sandbox Code Playgroud)

但是我的两个看法都没有延迟.

elixir iex

54
推荐指数
2
解决办法
3万
查看次数

在测试时撬

我是Elixir的新手,但它有很多乐趣!

我来自Ruby世界,所以开始看起来比喻.并且存在调试工具pry.使用binding.pry我可以中断任何会话.我在Elixir找到了类似的东西 - IEx.pry.但是当我通过测试时,它不起作用ExUnit.

问题 - 是否可以中断测试会话并使用当前环境运行iex?

testing elixir iex

51
推荐指数
2
解决办法
5332
查看次数

另一种退出IEX而不是ctrl-C的方法

我知道我们可以使用control-C退出IEX控制台.我很好奇是否有一个命令输入控制台也会做同样的事情.

elixir iex

30
推荐指数
4
解决办法
5492
查看次数

让elixir应用程序重新编译并重新加载源代码更改

每次修改源代码时如何自动重新编译和重新加载我的iex + mix应用程序?

如果iex + mix组合无法做到这一点,那么最简单的选择是什么?我已经检查了凤凰的重载方式,对我的小测试项目来说似乎并不容易实现.

我也知道José的.iex.exs:

defmodule R do
  def reload! do
    Mix.Task.reenable "compile.elixir"
    Application.stop(Mix.Project.config[:app])
    Mix.Task.run "compile.elixir"
    Application.start(Mix.Project.config[:app], :permanent)
  end
end
Run Code Online (Sandbox Code Playgroud)

我并不是非常高兴,因为它不会在代码更改时自动重新加载,我仍然需要输入R.reload!iex.

并且..请帮我在stackoverflow上创建"iex"标签,我的声誉还不够:)

elixir-mix elixir iex

25
推荐指数
2
解决办法
8329
查看次数

如何保存IEx历史记录?

使用IEx(Elixir的REPL),我希望能够保存我的命令历史记录.

例如:

我可以打开一个新的IEx会话并执行命令.执行命令后,我可以按向上箭头并预先填充我的最后一个命令.关闭IEx并重新打开后,我想访问我的最后一个命令.

有没有办法做到这一点?

elixir iex

24
推荐指数
3
解决办法
3149
查看次数

在Erlang shell中禁用跳转游标

()在IEx 1.2.4中键入时,光标将"跳转"到匹配的括号1s并向后移动.即使它不是真的跳跃但它有点令人讨厌.有没有办法在IEx中禁用此功能?

编辑:

虽然最初涉及IEx的问题,实际问题(正如@tkowal在下面的评论中所指出的)实际上是在IEx运行的Erlang Shell中.因此我在这个问题上添加了erlang-shell标签.

elixir erlang-shell iex

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

Iex撬开一步一步走?

我想使用IEx.pry逐步使用我的elixir代码,比如ruby中的byebug或Java中的调试点.我试着在这里查看文档:https://github.com/elixir-lang/elixir/blob/4f68c4f10502e0f54a21093bb9a33957e63a9ac4/lib/iex/lib/iex.ex 但没有找到任何内容.谁有人建议这样做的方法?

elixir phoenix-framework iex

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

我可以自定义Elixir iex以ctrl-D退出吗?

我知道几种退出的方法,iex但我喜欢在其他REPL中使用ctrl-D(例如node,irb.)

如何自定义iex才能执行此操作?

elixir iex

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

Elixir - 从shell调用模块函数

在Elixir中,有没有办法直接从shell调用模块函数,而不需要启动iex -S mix会话?让我用一个场景来说明:

作为我的Phoenix应用程序的一部分,我编写了一个辅助模块,可以从相邻的iex -S mix会话中运行.这是一个超级简化的版本:

defmodule MyApp.Helper do
  # For the demo, these imports/aliases are not used - but they're there in real life.
  import Ecto.Query
  alias MyApp.Repo

  def start do
    {:ok, "Done"}
  end
end
Run Code Online (Sandbox Code Playgroud)

如果我启动会话iex -S mix然后从模块运行一个函数,它一切正常:

$ iex -S mix
Erlang/OTP 20 [erts-9.2] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

Compiling 2 files (.ex)
Interactive Elixir (1.5.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> MyApp.Helper.start
{:ok, …
Run Code Online (Sandbox Code Playgroud)

shell elixir iex

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

标签 统计

elixir ×10

iex ×10

phoenix-framework ×2

ecto ×1

elixir-mix ×1

erlang-shell ×1

shell ×1

testing ×1