我想同时匹配地图中的特定键,并捕获该地图的其余部分.我希望这样的东西能起作用:
iex(10)> %{"nodeType" => type | rest} = %{"nodeType" => "conditional", "foo" => "bar"}
** (CompileError) iex:10: cannot invoke remote function IEx.Helpers.|/2 inside match
Run Code Online (Sandbox Code Playgroud)
目标是编写一组函数,这些函数在地图的某个字段上进行地图,模式匹配,并对地图的其余部分执行一些转换.
def handle_condition(%{"nodeType" => "condition" | rest}) do
# do something with rest
done
def handle_expression(%{"nodeType" => "expression" | rest}) do
# do something with rest
done
Run Code Online (Sandbox Code Playgroud)
但看起来我需要被调用者单独传递nodeType,除非我遗漏了什么.
有没有办法在整数范围内匹配?我想在一定数量的字符后删除字符,并添加省略号.这是我想要做的,但不匹配1..32.
def cutoff(title) do
case byte_size(title) do
_ -> title
1..32 -> String.slice(title, 1..32) <> " ..."
end
end
Run Code Online (Sandbox Code Playgroud) 我目前正在寻找在页面处于活动状态时添加CSS类.凤凰目前最好的办法是什么?这个案子有帮助吗?
def active(option, conn) do
if option == conn.request_path do
" class=\"active\""
else
""
end
end
Run Code Online (Sandbox Code Playgroud)
在模板中:
<%= "contact" |> active(@conn) |> raw %>
Run Code Online (Sandbox Code Playgroud) 我有一个测试需要在测试之前将user_id设置为session,因为此操作需要知道current_user.
setup do
%User{
id: 123456,
username: "lcp",
email: "abc@gmail.com",
password: Comeonin.Bcrypt.hashpwsalt("password")
} |> Repo.insert
{:ok, user: Repo.get(User, 123456) }
end
test "POST /posts", context do
# conn = conn()
# |> put_session(:user_id, context[:user].id)
# |> post("/posts", %{ post: %{ title: "title", body: "body" } })
# assert get_flash(conn, :info) == "Post created successfully."
# updated to =>
conn = conn()
|> Map.put(:secret_key_base, String.duplicate("abcdefgh", 8))
|> Plug.Session.call(@session)
|> Plug.Conn.fetch_session
|> put_session(:user_id, context[:user].id)
|> post("/posts", %{ post: %{ title: "title", body: …Run Code Online (Sandbox Code Playgroud) 我需要关于灵药理解下面的语法帮助!,?,_,和..elixir函数中的语法角色是什么?例如Repo.get!.
我不确定它们只是函数名称,还是有角色.虽然我知道.是为了调用匿名函数.而_对于任何一个或可变参数?
Rails.root凤凰城有类似的东西吗?假设我想在Phoenix应用程序中使用配置文件.查找脚本中使用的文件和路径的约定是什么?
如果您的应用程序/ api在vanilla Phoenix应用程序中启动,您是否会将要运行的代码放入?假设我想确保创建一些mnesia表或配置我的记录器后端.另一件事是运行时配置.他们在文档中提到它,但我不清楚在哪里定义/更改运行时配置.
Endpoint.ex 看起来像是一个完成初始配置的地方,但通过查看文档,我找不到任何允许我在启动时只运行一次代码的回调.
假设我有一个结构,struct = %MyApp.MyModel{ filled_with_data: "true }.
我如何获得结构名称(MyApp.MyModel在我的情况下)?
我有凤凰1.3 +苦艾酒的问题.
我试试这段代码:
schema "urls" do
field :path, :string
timestamps()
end
object :url do
field :id, :id
field :path, :string
field :inserted_at, :datetime
end
Run Code Online (Sandbox Code Playgroud)
它可以使用id,path但它失败inserted_at了:
Inserted_at :datetime is not defined in your schema.
Types must exist if referenced.
lib/absinthe/schema.ex:230: Absinthe.Schema.__after_compile__/2
(stdlib) erl_eval.erl:670: :erl_eval.do_apply/6
(elixir) lib/kernel/parallel_compiler.ex:121: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/1
Run Code Online (Sandbox Code Playgroud)