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