Phoenix模板中的变量或具有默认值

And*_*rey 2 elixir phoenix-framework

在Phoenix / Elixir中,更优雅,更短的方法是什么?

<title><%= @page_title %></title>
Run Code Online (Sandbox Code Playgroud)

我当然可以@page_title在每个控制器的每个动作中定义,但是如果我没有在动作中定义它并且没有将其传递给模板,我希望它具有默认值。

我怎样才能做到这一点?这不起作用:

<title><%= @page_title || "my title" %></title>
Run Code Online (Sandbox Code Playgroud)

Dog*_*ert 5

如果使用assigns括号语法通过映射访问该变量,则未设置该变量将不会出错。相反,您将获得nil,可以将其与之链接||以提供默认值:

<title><%= assigns[:page_title] || "my title" %></title>
Run Code Online (Sandbox Code Playgroud)