Ruby on rails 3 辅助对象方法中的意外点

Ruby on rails 3 辅助对象方法中的意外点,ruby-on-rails-3,routing,Ruby On Rails 3,Routing,我有以下路线 PosTracker::Application.routes.draw do get "home/index" resources :pos resources :apis match 'update_data' => 'home#update', :as => :update, :via => :get root :to => "home#index" end 现在,当使用link\u tohelper方法时: link_to

我有以下路线

PosTracker::Application.routes.draw do
  get "home/index"

  resources :pos
  resources :apis

  match 'update_data' => 'home#update', :as => :update, :via => :get
  root :to => "home#index"

end
现在,当使用
link\u to
helper方法时:

link_to "text", pos_path(starbase)
我得到了以下路径
/pos.13
,而不是
/pos/13
。显然,这不会产生有效的输出。我怎样才能解决这个问题

编辑:相关控制器:

class PosController < ApplicationController
  # GET /pos
  # GET /pos.xml
  def index
    #do stuff        

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @pos }
    end
  end

  # GET /pos/1
  # GET /pos/1.xml
  def show
    @pos = Pos.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @pos }
    end
  end
end
class PosController@pos}
结束
结束
#GET/pos/1
#GET/pos/1.xml
def秀
@pos=pos.find(参数[:id])
回应待办事项|格式|
format.html#show.html.erb
format.xml{render:xml=>@pos}
结束
结束
结束

在我看来,Rails似乎将pos#u path识别为您的索引操作url帮助器。一般来说,它会把你传递给资源的符号变成一个“表演动作”

您要使用的url帮助程序将是

link_to "text", po_path(starbase)
您通常可以通过运行

rake routes
或获取特定控制器的帮助器

rake routes CONTROLLER=pos

在你的控制器中,你的反应是什么样子的?好了。
#do stuff
只是一些查找。您的型号是
class Po
还是
class Pos
?啊,非常感谢!我自己也有同样的问题。突然间,一堆不同的链接在ID之前被呈现为“s”而不是“/”,我不知道为什么。结果是我在路径中输入了一个s,使其成为复数路径,然后将链接复制到各个点,使其全部无效。我以为我真的把我的路线搞砸了!