def index(conn, _params) do
current_user = conn.assigns.current_user
meetings = Listings.list_meetings() #works..sure but I only want current_user ones..
Tried all what I could find in goo, but no success!
#meetings = Repo.get_by!(Meeting, user_id: current_user.id) #nope, but anyway …is this getting all or only one entry?
=> Enumerable not implemented for
meetings = Repo.all(Meeting) |> where(user_id: current_user.id)
=> MeetingController.init/1 is undefined.
Repo.all() will run the query you are passing to it, so you will want to compose the full query before passing it in. Your last example is close, try something like Meeting |> where(user_id: current_user.id) |> Repo.all()
The Repo.get_by! function retrieves a single match and will throw an error if there are multiple results, see (see Ecto.Repo.get_by!).
Alternatively to using Repo.all: if you have added a has_many field to your User schema, you can also use Ecto.assoc/2 (see Ecto.assoc for examples) to retrieve the meetings.
When I do in schema meetings:
field :user_id, :integer
belongs_to :user, Accounts.User
I get: ** (ArgumentError) field/association :user_id is already set on schema…
So what? Do I have to set a relation in schema or not…This is all so unclear …
The field user_id (i.e. the field for the foreign key) will be automatically added when using belongs_to, so you should not add it yourself.
Should you need to customize the foreign key field name (say when you have two associations to the same schema), you can pass the foreign_key option to belongs_to (see belongs_to/3).
It still won’t teach you SQL - you’re still on your own for that …
We’re also going assume that you’re comfortable working with relational databases and SQL. You don’t need to be an expert, but you should be familiar with tables, columns, indexes and how to write queries. There are many online tutorials that can walk you through the basics.
Sure - however AR isn’t available in Ecto (or Phoenix) and I don’t know how much effort it would be to set up a piggybacked environment just for the purpose of generating SQL from active record.
Joe Celko’s stuff is interesting but from what I remember some of the content dealt with a “(prerelease-)reference-level ANSI SQL” that may or may not work on most platforms in the manner presented (so sometimes “translation” may be required). While SQL isn’t exactly moving at the same pace as JavaScript, a lot of his content has been around for awhile, the last (advanced) book update being from 2014.
For the purposes of getting the most out of Programming Ecto http://www.postgresqltutorial.com/
is probably the best bet. The bits of the tutorial I have come across seem to do the job.