rails foobar path(3)返回奇怪的路径:“/ foobar.3 /”而不是“/ foobar / 3 /

时间:2010-04-18 20:28:57

标签: ruby-on-rails routes

嗨,我有这种行为......

<%= link_to image_tag("image.png"), brain_path(1), :method => "put" %>

产生

<a href="/brain.1" onclick="var f = document.createElement('form'); f.style.display = 'none'; this.parentNode.appendChild(f); f.met ...[many rails code]... ;return false;"><img alt="Research_4" src="/images/image.png" /></a>

a href =“/ foobar.1”这是一个奇怪的部分:(任何想法导致这个问题?

rake路线提供以下内容:

  

new_brain GET /brain/new(.:format){:controller =&gt;“brains”,:action =&gt;“new”}

   edit_brain GET    /brain/edit(.:format)              {:controller=>"brains", :action=>"edit"}
        brain GET    /brain(.:format)                   {:controller=>"brains", :action=>"show"}
              PUT    /brain(.:format)                   {:controller=>"brains", :action=>"update"}
              DELETE /brain(.:format)                   {:controller=>"brains", :action=>"destroy"}
              POST   /brain(.:format)                   {:controller=>"brains", :action=>"create"}

1 个答案:

答案 0 :(得分:0)

  1. 你如何路线你的foobar? (单数或复数?资源还是资源?)

  2. 您确定使用的是foobar_path(1),而不是foobars_path(1)(单数形式)

  3. 现实生活中的

    foobars_path(1)将返回 /foobars.1 foobar_path(1) - / foobar / 1

    我认为你必须使用brain_path(1)而不是brain_path(1)

    <强> UPD

    更改您的route.rb

    map.resources :brain
    

    如果你将你的控制器重命名为复数大脑会更好 - 当你使用资源时它更常规