silverdr

silverdr

Serving different content formats from single controller's action

Looking for a way to distinguish whether e. g. document.html or document.pdf was requested and to serve appropriate content format in return. Something akin to respond_to in that other framework. I think I solved it already before but I can’t recall now. Hints/pointers appreciated.

Most Liked

LostKobrakai

LostKobrakai

The need for multiple modules comes from the fact that function components normalized to arity-1 functions (NameSpaceFormat.name(assigns)), which receive only assigns. There’s no additional parameter anymore, which would pass the format to the function transforming assigns to the format being rendered. Switching by format now happens on the view/layout/root layout level with put_view/put_layout/put_root_layout and them being updated to accept keyword lists.

Phoenix.View had render("name.format", assigns), which could switch on format within the same module. If you want to retain that you can keep using Phoenix.View by manually depending on it.

In regards to “viewless phx” I’m not sure what you’re refering to. Yes Phoenix.View is no longer used, but you can and likely will have modules serving the purpose of views still. Personally I’m a fan of phoenix having changed to dumping those modules next to controllers though, as it makes that fact less discoverable. I guess the tldr there would be: On a high level nothing changed (views are still a thing), but the implementation changed.

Last Post!

silverdr

silverdr

Ah, that would explain. So this in fact changed, which might be the reason why in the recent docs I couldn’t find how I think I did it previously. TNX

Where Next?

Popular in Questions Top

JeremM34
Hello, how can I check the Phoenix version ? Thanks !
New
vegabook
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
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
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
Qqwy
Original source of discussion: This topic on the Pragmatic Programmers’ Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New
albydarned
Hello all! I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New
jason.o
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

Other popular topics Top

Qqwy
Original source of discussion: This topic on the Pragmatic Programmers’ Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
dokuzbir
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
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New

We're in Beta

About us Mission Statement