2016-07-08 6 views
1

最近phoenixとectoの最新バージョンに移行しました。 Ecto 2.0へのアップデート後の未定義のメソッドキャスト

は今、私は私が行方不明です (CompileError) web/models/tag.ex:23: undefined function cast/4.何を取得しています

defmodule Spaces.Tag do 
    use Spaces.Web, :model 
#Changed to below 
defmodule Spaces.Tag do 
    use Ecto.Schema 

にエクトの変更履歴に応じて、モデルのコードを変更していますか?

マイmix.exs関連するコード

defp deps do 
    [{:phoenix, "~> 1.2"}, 
    {:postgrex, ">= 0.0.0"}, 
    {:phoenix_ecto, "~> 3.0"}, 
    {:phoenix_html, "~> 2.6"}, 
    {:phoenix_live_reload, "~> 1.0", only: :dev}, 
    {:gettext, "~> 0.9"}, 
    {:cowboy, "~> 1.0"}, 
    {:httpoison, "~> 0.8.0"}, 
    {:jsx, "~> 2.8"}, 
    {:scrivener_ecto, "~> 1.0"}, 
    {:phoenix_html_simplified_helpers, "~> 0.4.0"}, 
    {:ex_doc, "~> 0.12.0", only: [:dev]} 
    ] 
    end 

答えて

3

また、特定のモジュールをインポートする必要があります。

import Ecto 
    import Ecto.Changeset # This is the one that includes cast 
    import Ecto.Query 

これは、あなたが「shouldnエクト1.1に変更されたとhttp://www.phoenixframework.org/blog/upgrading-from-v10-to-v11#section-ecto-changes

に言及されました何もする必要はありません:

defmodule Spaces.Tag do 
    use Spaces.Web, :model 
#Changed to below 
defmodule Spaces.Tag do 
    use Ecto.Schema 

代わりに、あなたはにweb.exを更新する必要があります:私はここで編集を拒否し

defmodule Spaces.Web do 
    def model do 
    quote do 
     use Ecto.Schema 

     import Ecto 
     import Ecto.Changeset 
     import Ecto.Query 
    end 
    end 
end 
+0

、これが定義されているMyApp.Web' ''内model'機能であることに注意してください。 – Gazler

+0

私のコードはすべてdefモデルの中にあるべきですか?私は今 'undefined function schema'を取得しています。この全体をカバーするチュートリアルはありますか? – coderVishal

+0

あなたはまだ 'Spaces.Tag'の中で' use Spaces.Web、:model'を使う必要があります。チュートリアルは上にリンクしたアップグレードガイドです。 – Gazler

関連する問題