【问题标题】:rails foobar_path(3) returnes strange path: "/foobar.3/" instead of "/foobar/3/rails foobar path(3) 返回奇怪的路径:“/foobar.3/”而不是“/foobar/3/
【发布时间】:2010-04-18 20:28:56
【问题描述】:

嗨,我有这种严重的行为......

<%= 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 routes 给出以下信息:

new_brain GET /brain/new(.:format) {:controller=>"brains", :action=>"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"}

【问题讨论】:

    标签: ruby-on-rails routes


    【解决方案1】:
    1. 你如何路由你的 foobar? (单数还是复数?资源还是资源?)

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

    在现实生活中 foobars_path(1) 将返回 /foobars.1foobar_path(1) - /foobar/1

    我看到你必须使用brain_path(1) 而不是brain_path(1)

    UPD

    改变你的路线.rb

    map.resources :brain
    

    如果你将控制器重命名为复数形式会更好brains - 当你使用资源时它更传统

    【讨论】:

    • 嗨,感谢您在 routes.rb 中的回复,我使用 map.resource:brain 是的,我确定我使用的是 Brain_path(1)
    • map.resource :brain 更改为map.resources :brain(注意复数),然后它就可以工作了。如果您不想要/不需要索引操作,您可以执行 map.resources :brain, :except =&gt; [:index]
    • rspeicher 是对的,您不能使用 Brain/1 (brain_path(1)),因为当您将大脑路由为资源时,您只有一个大脑(单数!)。正如您在 rake:routes 中看到的,您没有 /brain/:id 资源。因此,您需要将您的 route.rb 更改为 map.resources :brain
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 2021-10-19
    • 1970-01-01
    相关资源
    最近更新 更多