小编nit*_*moe的帖子

Ecto:使用has_many关联对集合中的预加载数据进行排序

假设我有这个用于获取所有线程:

Thread |> Thread.ordered |> Repo.all |> Repo.preload([:posts])
Run Code Online (Sandbox Code Playgroud)

我怎么能为order_by子句提供:posts?我似乎无法在引用的文档中找到任何内容Ecto.Repo.preload/1,因此所提供的示例都不会对确定如何正确使用此语法有帮助.

elixir ecto phoenix-framework

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

Elixir EEx:在循环遍历地图或集合时确定当前迭代

我们以此模板位为例:

<%= if (length thread.posts) > 0 do %>
    <%= for post <- thread.posts do %>
        <%= for post <- thread.posts do %>
            <%= render "post.html", post: post %>
        <%= end %>
    <% end %>
<%= end %>
Run Code Online (Sandbox Code Playgroud)

在各种框架中,您可以检查当前索引/迭代/如果在模板代码中循环收集时第一个(或最后一个),Elixir/Phoenix是否提供任何类似的功能?举个例子,假设我们在第一次迭代中渲染一个特定的模板文件,然后为所有其他迭代渲染一个不同的模板文件,是否有最佳实现方法?

我已经考虑过设置一个变量来跟踪当前的迭代,但似乎Erlang中变量的不可变性使得这种可能性甚至是可取的.

elixir phoenix-framework

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

标签 统计

elixir ×2

phoenix-framework ×2

ecto ×1