redpoll

redpoll

How do I iterate over an array created from a phx generator

Hello,
On phoenix 1.7.7, when generating a phx.gen.live Tests Test tests tags:array:integer the generator creates a proper array

    create table(:tests) do
      add :tags, {:array, :integer}
      timestamps()
    end

However, when inserting the values from the ready-made CRUD

     <.input
          field={@form[:tags]}
          type="select"
          multiple
          label="Tags"
          options={[{"1", 1}, {"2", 2}]}
        />

Array is not showing (or is it??) correctly

In PostgreSQL:

id | tags  |       
----+-------
  1 | {1}   | 
  4 | {1,2} | 

Looking in the table showing content:

<.table
  id="tests"
  rows={@streams.tests}
  row_click={fn {_id, test} -> JS.navigate(~p"/tests/#{test}") end}
>
  <:col :let={{_id, test}} label="Tags"><%= test.tags %></:col>
  <:action :let={{_id, test}}>
    <div class="sr-only">
      <.link navigate={~p"/tests/#{test}"}>Show</.link>
    </div>
    <.link patch={~p"/tests/#{test}/edit"}>Edit</.link>
  </:action>
  <:action :let={{id, test}}>
    <.link
      phx-click={JS.push("delete", value: %{id: test.id}) |> hide("##{id}")}
      data-confirm="Are you sure?"
    >
      Delete
    </.link>
  </:action>
</.table>

<%= test.tags %> is the array. However, I cannot simply index that array, for example: test.tags[0] gives me the Access calls for keywords expect the key to be an atom, got: 0

What do you think? How to iterate over that array? I’ve seen Arrays — Arrays v2.1.1 and

Most Liked

codeanpeace

codeanpeace

Assuming you just want to show all tags, you could use the special :for attribute that HEEx supports.

  <:col :let={{_id, test}} label="Tags">
    <span :for={tag <- test.tags}><%= tag %></span>
  </:col>

source: Components and HEEx — Phoenix v1.7.7

Where Next?

Popular in Questions Top

sergio
In Ruby, I can go: User.find_by(email: "foobar@email.com").update(email: "hello@email.com") How can I do something similar in Elixir? ...
New
marius95
Hello everyone, I try to use an Javascript Event Handler in my root.html.leex file. Therefore I created a function in the app.js file: ...
New
Fl4m3Ph03n1x
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: ) Hello all, this is ...
New
ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod -- where is this set? Thanks.
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
Lily
In templates/appointment/index.html.eex: &lt;%= for appointment &lt;- @appointments do %&gt; &lt;tr&gt; &lt;td&gt;&lt;%= appoi...
New
script
If I have a string “1000 cfu/ml” . I want to remove the characters and / and space . So the string is like this "1000" What is the ...
New
nobody
Hi! In PHP: $SERVER['SERVERADDR'] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New

Other popular topics Top

mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID&lt;0.412.0&gt; terminating ** (Postgrex.Error) FATAL...
New
pmjoe
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
Emily
I have VueJS GUIs with the project generated using Webpack. I have Elixir modules that will need to be used by the VueJS GUIs. I fore...
New
fireproofsocks
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? https://hexdocs.pm/ecto/Ecto.Repo.h...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
chrismccord
This release brings a number of exciting features, including integration with the new Phoenix LiveDashboard and Phoenix LiveView. There h...
New
Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
hariharasudhan94
Lets say i have map like this fetching from my database %{"_id" =&gt; #BSON.ObjectId&lt;58eb1a7a9ad169198c3dXXXX&gt;, "email" =&gt; "XX...
New

We're in Beta

About us Mission Statement