未定义的方法`time_series_path'错误

时间:2013-12-10 16:10:00

标签: ruby-on-rails ruby routes

加载index.html.rb时出现此错误。

undefined method `time_series_path' for #<#<Class:0x007f6aac0d2a28>:0x007f6aac0d1358>

在routes.rb中我有

namespace :viewer do
   resources :time_series
end

在TimeSeriesController中,我有

class Viewer::TimeSeriesController < ApplicationController
  def show
    @time_series = TimeSeries.find(params[:id])
  end

  def index
    @time_series = TimeSeries.all.paginate(:page => params[:page], :per_page => 20)
  end
end

在index.html.rb中我有

<h1>Listing of time series</h1>

<table  >
  <tr>
    <th>Kind</th>
    <th></th>
  </tr>
  <% @time_series.each do |t| %>
    <tr>
      <td><%= t.kind %></td>
      <td><%= link_to 'Show', t %></td>
    </tr>
  <% end %>
</table>
<%= will_paginate @time_series %>

link_to“显示”行发生错误。

有关如何解决此问题的任何想法?感谢。

1 个答案:

答案 0 :(得分:1)

如果使用命名空间,则命名空间将成为路由名称的一部分。

viewer_time_series_path

time_series_path

要仔细检查,您可以打印出所有路线的列表

rake routes

和grep立即检查名称

rake routes | grep time_series

在您的代码中,您可以将名称空间作为数组传递给link_to助手以及对象

<%= link_to 'Show', [:viewer, t] %>

或(我更喜欢这个解决方案)你明确地写了相应的路径。