top | item 27193847

(no title)

poisonta | 4 years ago

In addition to that, I struggled to find a well maintained library similarly to Devise. Also, many people won’t agree to me, but Ecto is also a kind of pain. I think Phoenix would have been in a better position if there were libraries like ActiveRecord and Devise.

discuss

order

subbu|4 years ago

I struggled with Ecto. It seemed too complex. I missed find_by_sql and the scopes of ActiveRecord. But once I went past the initial learning curve Ecto is a seriously well designed library. I have not written a single sql query by hand. Now I feel find_by_sql is an anti-pattern as I was mixing sql with ORM.

Once your database becomes sufficiently complex you start writing a lot more sql.

ActiveRecord's way of chaining scopes to combine multiple scopes is brittle. You can't customize the conditions. Ecto solves this by giving you composability. You can build on top of your earlier commands. If you combine this with pattern matching in the functions or Enum.reduce you have an extremely powerful and a flexible query engine.

Ecto also relies on the strengths of underlying database engine rather than treating it as a black box. If you are dealing with 100s of tables Rails way of polymorphic design doesn't give you referential integrity. I like Ecto's recommendations: https://hexdocs.pm/ecto/polymorphic-associations-with-many-t...

hnedeotes|4 years ago

Probably there's no one in the Elixir community with enough know how to build a Devise-alike lib, it's what it is.

cpursley|4 years ago

Uh, I shouldn't have to point this out but Elixir was created by the people behind devise...

dasil003|4 years ago

Is this a joke based on the fact that the same person created Elixir as Devise?

brightball|4 years ago

Jose Valim, the creator and primary author of Elixir, actually wrote Devise.

yoneyone|4 years ago

Jose Valim, creator Elixir, was one of the core developers of Devise...

cultofmetatron|4 years ago

I've been able to drop in pow with ease and have everything I would have gotten from devise.

That said, the community is moving towards phx_gen_auth which jose himself wrote and will come out of the box with 1.6