2016-05-23 27 views
0

我遵循Phoenix編程書籍,但使用HAML作爲模板引擎。當渲染新temmplate創建新的用戶我得到這個錯誤:assign @chageset在Phoenix中使用HAML時eex模板不可用

assign @chageset not available in eex template.

我使用克里斯·麥科德的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 

缺少什麼嗎?

+3

'@ chageset'中的錯字? – Dogbert

+0

難以置信......對不起......這是錯字...... –

回答

0

我有一個類似的問題

我得到

(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文件做工精細。

相關問題