【问题标题】:Resourceful Routes helpers _path and _url dont work资源丰富的路由助手 _path 和 _url 不起作用
【发布时间】:2011-12-21 13:13:51
【问题描述】:

我正在尝试将用户重定向到show_city_urlshow_city_path,但我得到一个例外,即它们都未定义。在城市控制器中,我有三个动作显示、喜欢和不喜欢。 unlike_city_pathlike_city_path 有效,但 show_city_path 无效。此外,当我将其放入 all_cities 操作时,redirect_to :controller=>"city",:action=>"show" 有效。我做错了什么?谢谢。

    class HomeController < ApplicationController  

    def all-cities
       redirect_to show_city_url
    end  

   end

在路线中

     resources :city do
     member do
     post :like
     post :dislike
     get  :show
    end
    end

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 resources routes ruby-on-rails-3.1


    【解决方案1】:

    根据您的 cmets:

    resources :cities, :controller => 'city' do
      collection do
        get :show, :as => :show
      end
    
      member do
        post :like
        post :dislike
      end
    end
    

    现在您可以致电 show_cities_url,然后您将进入 CityController 的显示操作。

    PS:遵循 Rails 的约定会让你的生活更轻松;)

    RoR 指南:Rails Routing from the Outside In

    【讨论】:

    • 显示/列出城市的控制器的名称是什么?
    • 好的,它自然会寻找“CitiesController”(复数),因此有两种解决方案:1)将其重命名为复数 2)在您的 routes.rb 中指定控制器,如 resources :cities, :controller =&gt; 'city' do
    • 非常感谢雪橇!我做了选项 2。它有效。但我无法强制显示_cities_url,有什么办法吗?
    • 你为什么要这样做? cities_url 进入索引(​​列出所有城市)city_url(@city_id) 进入显示页面
    • 我的设置有点不同,我在显示页面中显示所有城市,这就是为什么。我没有遵循 Rails 约定。city_url(@city) 也将我带到索引页面
    猜你喜欢
    • 2012-08-10
    • 2014-09-05
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    相关资源
    最近更新 更多