我有以下路线
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_to
辅助方法时:
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
答案 0 :(得分:7)
在我看来,Rails正在将pos_path识别为你的#index动作网址助手。通常,它会将您传递给资源的符号用于#show操作。
您要使用的网址助手是
link_to "text", po_path(starbase)
通常可以通过运行
找到辅助方法的名称rake routes
或者获取特定控制器的帮助
rake routes CONTROLLER=pos