for elem1, elem2, elem3 in list1, list2, list3 do
Repo.insert{elem1, elem2, elem3}
end
の下に擬似コードのようにparalelでリストを反復処理する方法は、私のデータである見つけることができないので、私は、データベースにデータをシードしようとしているが、それは働いていません。
@list_of_names ~w(Daniel Admin Goran Tomislav User1)
@list_of_usernames ~w(daniel admin goran marex User2)
@list_of_passwords ~w(123456 000000 123456 123456 123456)
と私はそれをユーザー構造体を使用して挿入する必要があります。
Repo.insert!(%User{
name: name,
username: username,
password: password
})
私はdocsを試しましたが、このコードは機能しません。
defmodule Rumbl.DatabaseSeeder do
alias Rumbl.Repo
alias Rumbl.User
@list_of_names ~w(Daniel Admin Goran Tomislav Marin)
@list_of_usernames ~w(daniel admin goran marex marin)
@list_of_passwords ~w(123456 000000 123456 123456 123456)
def insert_user do
Repo.insert!(%User{
name: (@list_of_names |> Enum.take_random),
username: (@list_of_usernames |> Enum.take_random),
password: (@list_of_passwords |> Enum.take_random)
})
end
end
(1..5) |> Enum.each(fn _ -> Rumbl.DatabaseSeeder.insert_user end)
エラーの後:mix run priv\repo\seeds.exs
** (UndefinedFunctionError) function Enum.take_random/1 is undefined or private. Did you mean one of:
* take_random/2
(elixir) Enum.take_random(["Daniel", "Admin", "Goran", "Tomislav", "Marin"])
priv/repo/seeds.exs:27: Rumbl.DatabaseSeeder.insert_user/0
(elixir) lib/enum.ex:657: anonymous fn/3 in Enum.each/2
(elixir) lib/enum.ex:1628: anonymous fn/3 in Enum.reduce/3
(elixir) lib/range.ex:92: Enumerable.Range.reduce/5
(elixir) lib/enum.ex:1627: Enum.reduce/3
(elixir) lib/enum.ex:656: Enum.each/2
(elixir) lib/code.ex:363: Code.require_file/2
(mix) lib/mix/tasks/run.ex:71: Mix.Tasks.Run.run/1
(mix) lib/mix/task.ex:296: Mix.Task.run_task/3
(mix) lib/mix/cli.ex:58: Mix.CLI.run_task/2
(elixir) lib/code.ex:363: Code.require_file/2
コード内に「<%= ... %>」を使用する必要はありません。それはあなたがeexを使っている場合のみです。あなたが実際に得ているエラーは何ですか?また、あなたは '<%= ... %>'を使う必要があると思ったのですか? –
あなたはそのエラーについて何を理解していませんか? 2つの引数を取る関数を呼び出そうとしていますが、あなたは1を渡すだけです。[ここをクリック](http://elixir-lang.org/docs/stable/elixir/Enum.html#take_random/2)関数を使用します。 –