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,使其成为复数路径,然后将链接复制到各个点,使其全部无效。我以为我真的把我的路线搞砸了!