0

我有一个 Fixer 模型,但与我的应用程序中的所有其他模型不同,它的路由无法正常工作,即使路由文件中有一个资源行。

问题是,当我尝试以多种方式链接到基本显示路径时,例如

<%= link_to "Fixer", fixer_path(@fixer) %>

或者

<%= link_to "Fixer", @fixer %>

或者

<%= link_to "Fixer", fixer_path(@fixer.id) %> # I got desperate

它链接到 /fixers.[:id](不是真实页面)而不是 /fixers/[:id]。不知道发生了什么,因为我的资源线在那里,并且显示是一个基本的资源操作,所有其他类似资源的模型似乎都工作得很好。

有任何想法吗?(如有必要,我可以添加更多代码。只是不确定什么是相关的)。

编辑——我的 rake 路线中的 Fixers 输出:

       fixers GET    /fixers(.:format)           fixers#index
              POST   /fixers(.:format)           fixers#create
    new_fixer GET    /fixers/new(.:format)       fixers#new
   edit_fixer GET    /fixers/:id/edit(.:format)  fixers#edit
              GET    /fixers/:id(.:format)       fixers#show
              PUT    /fixers/:id(.:format)       fixers#update
              DELETE /fixers/:id(.:format)       fixers#destroy

哇。在发布此消息后刚刚注意到,第 5 行缺少我所有其他模型的显示操作行之前的“修复器”。为什么会这样?我如何解决它?

编辑——我想通了!真是愚蠢的问题。出于某种原因,当我学习如何做这一切时,我都包含了一个资源行并在其上方添加了这一行:

match '/fixer', to: 'fixers#new'

当我取出那条线(因为它是多余的)时,问题就消失了。我想我在搞乱 Rails 路由自动魔法。他们确实使这些默认设置成为最佳选择。

4

1 回答 1

1

嘿,我以前也遇到过同样的问题。不幸的是,我采取了以下措施:link_to "link text", "/fixers/#{@fixer.id}"不过,我很想知道这个问题的实际正确答案。

于 2012-10-27T05:34:05.083 回答