正文class 帮手

Body class helper

我正在尝试在 Rails 助手上复制以下 Ruby:

def body_classes
    "c-#{params[:controller].underscore} is-#{params[:action].underscore}"
end

据我所知:

def body_classes(conn) do
    "l- is-#{action_name(conn)}"
end

如何检索 layout/view 名称?

您正在寻找 Phoenix.Controller.controller_module/1 or Phoenix.Controller.view_module/1 and Phoenix.Controller.action_name/1.

"l- #{controller_module(conn)}-#{action_name(conn)}"

如果只需要动词,可以使用 Phoenix.Naming.resource_name/2

类似于:

Phoenix.Naming.resource_name(MyApp.UserController, "Controller") #"user"

结束代码如下所示:

"l-#{controller_module(conn) |> Phoenix.Naming.resource_name("Controller")}-#{action_name(conn)}"
#"l-user-index"