未定义的方法“foo_path”(我还没有调用它)

undefined method `foo_path' (I haven't called it)

我正在构建一个非常简单的 rails 应用程序,没有资源路由。 我没有调用 trans_application_path 但视图返回错误 undefined method `trans_application_path' for ...

这是我的代码。有什么想法吗?

控制器

# GET /trans/drafts
  def drafts_index
    @trans_drafts = TransApplication.where(applied: false)
  end

# GET /trans/apps
  def apps_index
    @trans_apps = TransApplication.where(applied: true)
  end

查看

<p id="notice"><%= notice %></p>

<h1>drafts_index</h1>

<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Department</th>
      <th>Month</th>
      <th>Applied</th>
      <th colspan="3"></th>
    </tr>
  </thead>

  <tbody>
    <% @trans_drafts.each do |trans_draft| %>
      <tr>
        <td><%= trans_draft.name %></td>
        <td><%= trans_draft.department %></td>
        <td><%= trans_draft.month %></td>
        <td><%= trans_draft.applied %></td>
        <td><%= link_to 'Show', trans_draft %></td>
      </tr>
    <% end %>
  </tbody>
</table>

<br>

我做了什么

<td><%= link_to 'Show', trans_draft %></td>

你在打电话 trans_application_path。如果您不提供,link_to 将使用 polymorphic_path 作为 url。这将查看给定对象的 class (trans_draft) 并调用该 class.

的路径助手

如果你想让请求到达你的控制器,你需要一些路由。如果它不是资源路由(或等效路由),则将你想要的 url 传递给你的 link_to 而不是对象。