【问题标题】:assign @chageset not available in eex template in Phoenix when using HAML使用 HAML 时,在 Phoenix 的 eex 模板中分配 @chageset 不可用
【发布时间】:2018-01-05 10:32:48
【问题描述】:

我正在关注 Programming Phoenix 这本书,但使用 HAML 作为模板引擎。渲染新模板以创建新用户时出现此错误:

assign @chageset not available in eex template.

我正在使用 Chris Mccord 的 Phoenix_HAML 并在那里配置了所有内容。

控制器与书中描述的完全一样:

defmodule Rumbl.UserController do
    use Rumbl.Web, :controller

     def index(conn, _params) do
       users = Repo.all(Rumbl.User)
       render conn, "index.html", users: users
     end

     def show(conn, %{"id" => id}) do
      user = Repo.get(Rumbl.User, id)
      render conn, "show.html", user: user
    end

    alias Rumbl.User

    def new(conn, _params) do
      changeset = User.changeset(%User{})
     render conn, "new.html", changeset: changeset
    end
  end

还有模板

%h1 New User
  = form_for @chageset, user_path(@conn, :create), fn f ->
    %div.form-group
     = text_input f, :name, placeholder: "Name", class: "form-control"
    %div.form-group
     = text_input f, :username, placeholder: "Username", class: "form-control"
    %div.form-group
     = password_input f, :password, placeholder: "Password", class: "form-control"
    = submit "Create User", class: "btn btn-primary"
 - end

这里缺少什么?

【问题讨论】:

  • @chageset 中的错字?
  • 难以置信...抱歉给您带来了麻烦...这是错字...

标签: phoenix-framework


【解决方案1】:

我也有类似的问题

我明白了

(EEx.SyntaxError) lib/hello_web/templates/user/form.html.haml:1: 
    unexpected end of string, expected a closing '<% end %>'
    (eex) lib/eex/compiler.ex:91: EEx.Compiler.generate_buffer/4
    (eex) lib/eex/compiler.ex:45: EEx.Compiler.generate_buffer/4

使用以下form.html.haml:

= form_for @changeset, @action, fn f ->
  = if @changeset.action do
  .alert.alert-danger
    %p Oops, something went wrong! Please check the errors below.
  .form-group
    = label f, :name, class: "control-label"
    = text_input f, :name, class: "form-control"
    = error_tag f, :name
  .form-group
    = label f, :email, class: "control-label"
    = text_input f, :email, class: "form-control"
    = error_tag f, :email
  .form-group
    = label f, :bio, class: "control-label"
    = text_input f, :bio, class: "form-control"
    = error_tag f, :bio
  .form-group
    = label f, :number_of_pets, class: "control-label"
    = number_input f, :number_of_pets, class: "form-control"
    = error_tag f, :number_of_pets
  .form-group
    = submit "Submit", class: "btn btn-primary"

简单的 HAML 文件可以正常工作。

【讨论】:

    猜你喜欢
    • 2020-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多