flp
Dynamic column query based on input
I try to search in a column based on the user’s language.
I have 3 entities to search in for the relation which is based on the language, but unfortunately I could not get it working.
My first try was
dynamic([m, s], ilike(m.n, ^"%#{term}%") or ilike(m.l, ^"%#{term}%") or ilike(^type_name_column(locale), ^"%#{term}%"))
defp type_name_column(locale) do
case locale do
"de" -> "m.de"
_ -> "m.en"
end
end
It worked for one entity, but don’t not work for the other one. Whyever.
My second try was to move the call outside dynamic:
dynamic([m, s], ilike(m.n, ^"%#{term}%") or ilike(m.l, ^"%#{term}%") or ^type_name_ilike(locale, term))
defp type_name_ilike(locale, param) do
case locale do
"de" -> ilike("m.de", ^"%#{param}%"))
_ -> ilike("m.en", ^"%#{param}%"))
end
end
But this did not even compile anymore.
So I finally came up with my the third approach that would work again, but I am not happy with the code since I need to write this helper function a few times since I have different counts of the dynamic parameters.
dynamic([m, s], ilike(m.n, ^"%#{term}%") or ilike(m.l, ^"%#{term}%") or ^type_name_ilike(locale, term))
defp type_name_ilike(locale, param) do
case locale do
"de" -> dynamic([m, s], ilike(s.de, ^"%#{param}%"))
_ -> dynamic([m, s], ilike(s.en, ^"%#{param}%"))
end
end
What’s the best way to solve this problem?
Popular in Questions
Is there a way to rollback a specific migration and only that one (“skipping” all the other ones)?
Would
mix ecto.rollback -v 200809061...
New
Hi everyone!
I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New
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
I am trying to implement my new.html.eex file to create new posts on my website.
new.html.eex:
<h1>Create Post</h1>
<%= ...
New
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
I’m working on defining a simple Ecto schema for a table (in PostGres), but I don’t see where I can define a column as NOT NULL. Conside...
New
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
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
Hello, I have map which I want to convert it to string like this:
the map:
%{last_name: "tavakkoli", name: "shahryar"}
the string I ne...
New
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
Other popular topics
Hi,
I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
I’ve read in another post that it may be possible with a router helper - but I couldn’t find an appropriate one, and tbh, I’m still just ...
New
Hi everyone,
One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New
Hello!
tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability.
After spen...
New
Good day to you all.
I have been struggling to get a query involving like and ilike to work.
Can anyone assist me on this, please?
pro...
New
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
i’m a new one to elixir
which editor can i use
vs code? or atom?
Thanks! :smiley:
New
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









