Ruby on rails RubyonRails路由的奇怪行为

Ruby on rails RubyonRails路由的奇怪行为,ruby-on-rails,ruby,routing,routes,Ruby On Rails,Ruby,Routing,Routes,我是一名Ruby新手,一直在努力解决以下路由问题: 我的应用程序中有一个发布者控制器,我想将其用作单一资源,以便登录的发布者可以使用/publisher路径访问其个人资料 我的路由文件包含以下内容 resources :publishers, :only => [:index, :show, :edit, :update] resource :publisher, :only => [:show, :edit, :update] 在我的视图控制器中,我有链接 <li>&

我是一名Ruby新手,一直在努力解决以下路由问题:

我的应用程序中有一个发布者控制器,我想将其用作单一资源,以便登录的发布者可以使用/publisher路径访问其个人资料

我的路由文件包含以下内容

resources :publishers, :only => [:index, :show, :edit, :update]
resource :publisher, :only => [:show, :edit, :update]
在我的视图控制器中,我有链接

<li><%= link_to "View General Settings", publishers_path(@publisher) %></li>

谢谢

尝试使用发布者路径而不是发布者路径

首先,正如泰勒所说,您使用的是出版商资源路线,而不是出版商资源路线

由于这将在将来引起混淆,我建议删除单个资源发布服务器,并将命名路由与发布服务器控制器的显示操作相匹配,如下所示:

match "/publisher/:id" => "publishers#show"
此外,如果您不想在命名路由中包含ID部分,可以将其删除,但您必须想出一种以某种方式存储发布者ID的方法。我想到了一个会话变量


希望这有帮助

谢谢,效果很好!然而,我经历所有这些麻烦的原因是我想从URL中隐藏发布者ID(我不想让发布者知道他们的ID)。有没有一种聪明的方法让我这么做?当他们以用户身份登录时,获取相关的发布者ID并将其存储在会话中。对show操作使用该参数而不是params[:id]。
match "/publisher/:id" => "publishers#show"