加载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“显示”行发生错误。
有关如何解决此问题的任何想法?感谢。
答案 0 :(得分:1)
如果使用命名空间,则命名空间将成为路由名称的一部分。
viewer_time_series_path
不
time_series_path
要仔细检查,您可以打印出所有路线的列表
rake routes
和grep立即检查名称
rake routes | grep time_series
在您的代码中,您可以将名称空间作为数组传递给link_to
助手以及对象
<%= link_to 'Show', [:viewer, t] %>
或(我更喜欢这个解决方案)你明确地写了相应的路径。