2016-09-08 3 views
3

私は、このテンプレート eexテンプレートと@変数のデバッグ方法は?

<%= form_for @changeset, bid_path(@conn, :update, 1), [method: :put], fn f -> %> 
    <% 
     require IEx 
     IEx.pry 
    %> 
<%= if @changeset.action do %> 
    <div class="alert alert-danger"> 
    <p>Oops, something went wrong! Please check the errors below.</p> 
    </div> 
<% end %> 

どのように私はIEXコンソールで@changeset表示することができますがありますか?私はこれをやろうとしているときにエラーが吹くさ:フェニックスのeexテンプレートに

pry(5)> @changeset 
** (ArgumentError) cannot invoke @/1 outside module 
    (elixir) lib/kernel.ex:3960: Kernel.assert_module_scope/3 
    (elixir) expanding macro: [email protected]/1 
      web/templates/bid/edit.html.eex:5: (file) 
+0

い '割り当て[ :changeset] '仕事? – Dogbert

+0

@Dogbertはい!ありがとう私はどこでもそれを見つけることができませんでした:) – piotrze

答えて

9

@をエリクシール/ IEXで@とは全く無関係です。 Elixir/iexでは、フェニックスのテンプレートでは@foo is roughly equivalent to Access.fetch!(assigns, :foo)、モジュール属性の定義にはテンプレートが使用されています。

Access.fetch!(assigns, :changeset) 

をまたはちょうどあなたが存在しないキーのnilを取得して大丈夫なら、次の::だから、iex@changesetにアクセスするために、あなたが行うことができ

assigns[:changeset] 
+0

エリクサーのモジュールで@のあなたの答えに例を追加してください。 – script

関連する問題