2015-08-20 28 views
3

我試圖按照本教程鳳凰的當前版本/靈藥的/ etc:http://learnelixir.com/blog/2014/10/30/real-time-to-do-list-with-phoenix-channel/但我得到一個編譯錯誤phoenix_ecto是編譯錯誤phoenix_ecto

版本如下:

[mariano:~/phoenix/realtime_todo]$ git remote -v 
origin https://github.com/phoenixframework/phoenix.git (fetch) 
origin https://github.com/phoenixframework/phoenix.git (push) 

[mariano:~/phoenix/realtime_todo]$ git branch 
* (detached from v0.10.0) 
    master 

[mariano:~/phoenix/realtime_todo]$ elixir -v 
Elixir 1.0.5 
[mariano:~/phoenix/realtime_todo]$ mix -v 
Mix 1.0.5 

[mariano:~/phoenix/realtime_todo]$ mix deps.compile phoenix_ecto 
==> phoenix_ecto 
Compiled lib/phoenix_ecto.ex 
Compiled lib/phoenix_ecto/plug.ex 
Compiled lib/phoenix_ecto/json.ex 

== Compilation error on file lib/phoenix_ecto/html.ex == 
** (CompileError) lib/phoenix_ecto/html.ex:7: unknown key :impl for struct Phoenix.HTML.Form 
    (elixir) src/elixir_map.erl:182: :elixir_map."-assert_struct_keys/5-lc$^0/1-0-"/5 
    (elixir) src/elixir_map.erl:59: :elixir_map.translate_struct/4 
    (elixir) src/elixir_clauses.erl:36: :elixir_clauses.clause/7 
    (elixir) src/elixir_def.erl:178: :elixir_def.translate_clause/7 
    (elixir) src/elixir_def.erl:167: :elixir_def.translate_definition/8 

could not compile dependency phoenix_ecto, mix compile failed. You can recompile this dependency with `mix deps.compile phoenix_ecto` or update it with `mix deps.update phoenix_ecto` 
+1

如果您正在使用鳳凰的當前版本下,則最新的版本是0.17.0或更新,而不是作爲0.10.0您正在使用。我會推薦http://phoenixframework.org上的入門指南 – Gazler

+0

儘管我懷疑它在這種情況下會有所作爲,但在討論Elixir時,爲了將來的參考,還要確定是否存在Erlang的版本。 –

回答

2

它看起來像是要麼缺少phoenix_html依賴關係,要麼使用它的不同版本。

它添加到您mix.exs文件:

defp deps do 
    [{:phoenix, "~> 0.17.0"}, 
    {:ecto, "~> 0.16.0"}, 
    {:phoenix_ecto, "~> 1.1.0"}, 
    {:postgrex, ">= 0.0.0"}, 
    {:phoenix_html, "~> 2.1.0"}, 
    {:phoenix_live_reload, "~> 1.0", only: :dev}] 
end 

然後運行mix deps.get