【问题标题】:KeyError in Phoenix web frameworkPhoenix Web 框架中的 KeyError
【发布时间】:2014-11-14 06:16:06
【问题描述】:

尝试向客户端提供页面时,客户端出现以下错误:

(KeyError) key :id not found in: %Phtest.Jobs{"@class": "Job", "@rid": “#13:0”、“@type”:“d”、“@version”:1、描述:“öoisajdf sadöflkjasdfö lkj", job_status: "Open", job_type: "Developer", title: "Foo"} 堆栈跟踪

(phtest) web/templates/page/index.html.eex:27: Phtest.PageView."-index.html/1-lc$^0/1-0-"/1
(phtest) web/templates/page/index.html.eex:16: Phtest.PageView."index.html"/1
...

它之前工作过,但现在我修改了我的模型,将job.id 切换为job."@rid"。我的模板如下所示:

<ul class="list-unstyled" style="">
  <%= for job <- @jobs do %>
  <li class="job-list">
    <div class="row">
      <div class="col-md-9">
        <a href="/jobs/<%= job."@rid" %>">
          <span class="title"><%= job.title %></span>
          <span class="label label-success"><%= job.job_type %></span>
          <span class="label label-default"><%= job.job_status %></span>
        </a>
      </div>
      <div class="col-md-3 buttons" style="text-align: right">
        <!-- <form method="post" action="<%= job_path(:destroy, job.id) %>"> -->
        <a href="/jobs/<%= job."@rid" %>/edit" class="btn btn-warning btn-sm">
          Edit</a> &nbsp;&nbsp;
          <a href="/jobs/<%= job."@rid" %>?action=delete" class="btn btn-default btn-sm">
            Delete</a>
<!--          <input type="hidden" name="_method" value="DELETE">
          <button type="submit" class="btn btn-default btn-sm">Delete</button>
        -->
      </div>
    </div>
  </li>
  <% end %>
</ul>

【问题讨论】:

    标签: elixir phoenix-framework


    【解决方案1】:

    堆栈跟踪的第一行显示模板中的错误位置。

    反过来,模板仍然引用旧的job.id,尽管它位于 HTML 注释括号内,但仍在评估中。将其更正为 job."@rid",完全删除代码或注释掉 EEx 模板代码,如下所示:

    <!-- <form method="post" action="<%= #job_path(:destroy, job.id) %>"> -->
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-06
      • 2017-11-05
      • 2018-04-01
      • 1970-01-01
      • 2016-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多