Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 有休息路线的行动_Ruby On Rails 3_Routes - Fatal编程技术网

Ruby on rails 3 有休息路线的行动

Ruby on rails 3 有休息路线的行动,ruby-on-rails-3,routes,Ruby On Rails 3,Routes,我有用户控制器的路由: get 'users/get_my_rating' get 'users/recover_password' get 'users/get_last_comments' post 'users/update_rating' resources :users do member do get 'about' get 'comments' get 'friends' end end 如何将cre

我有用户控制器的路由:

  get 'users/get_my_rating'
  get 'users/recover_password'
  get 'users/get_last_comments'
  post 'users/update_rating'

  resources :users do
    member do
      get 'about'
      get 'comments'
      get 'friends'
    end
  end
  • 如何将
    create
    REST操作重新映射到
    注册
  • 如何将前3条规则放到
    资源:用户
    阻止
如何将创建REST操作重新映射到注册? 给你

signup_url
用于代码中

如何将前3条规则放入资源:用户块? 不完全确定你在这里的意思,但是

resources :users do
  member do
    get 'about'
    get 'comments'
    get 'friends'
  end
  collection do
    get 'get_my_rating' # => UsersController get_my_rating
    get 'recover_password' # => UsersController recover_password
    get 'get_last_comments' # => UsersController get_last_comments
    post 'update_rating' # => UsersController update_rating
  end
end
导致

 get_my_rating_users     GET    /users/get_my_rating(.:format)              {:action=>"get_my_rating", :controller=>"users"}
 recover_password_users  GET    /users/recover_password(.:format)           {:action=>"recover_password", :controller=>"users"}
 get_last_comments_users GET    /users/get_last_comments(.:format)          {:action=>"get_last_comments", :controller=>"users"}
 update_rating_users     POST   /users/update_rating(.:format)              {:action=>"update_rating", :controller=>"users"}
如何将创建REST操作重新映射到注册? 给你

signup_url
用于代码中

如何将前3条规则放入资源:用户块? 不完全确定你在这里的意思,但是

resources :users do
  member do
    get 'about'
    get 'comments'
    get 'friends'
  end
  collection do
    get 'get_my_rating' # => UsersController get_my_rating
    get 'recover_password' # => UsersController recover_password
    get 'get_last_comments' # => UsersController get_last_comments
    post 'update_rating' # => UsersController update_rating
  end
end
导致

 get_my_rating_users     GET    /users/get_my_rating(.:format)              {:action=>"get_my_rating", :controller=>"users"}
 recover_password_users  GET    /users/recover_password(.:format)           {:action=>"recover_password", :controller=>"users"}
 get_last_comments_users GET    /users/get_last_comments(.:format)          {:action=>"get_last_comments", :controller=>"users"}
 update_rating_users     POST   /users/update_rating(.:format)              {:action=>"update_rating", :controller=>"users"}

要集成前3条路线,请执行以下操作:

resources :users do
  member do
    get 'about'
    get 'comments'
    get 'friends'
  end
  collection do
    get 'get_my_rating'
    get 'recover_password'
    get 'get_last_comments'
  end
end
此外,您还可以向各种成员和集合规则添加:as=>“name_here”,以生成*\u url和*\u路径帮助程序。查看
rake routes
查找路由名称等

要覆盖REST创建的位置,请执行以下操作:

match '/users' => 'users#signup', :as => 'signup', :via => :post
请确保将此放置在参考资料之前:用户填充,因为rails尝试从上到下查找路径,并与第一个匹配匹配


还有一些要考虑的事情:从“用户/GETHyMyLead”(以及下面的2个)的名称来看,听起来这些都是比集合方法更多的成员方法,所以我会考虑将这些移动到成员块中,而不是将它们放在集合块中。只需2美分。

要整合前3条路线,请执行以下操作:

resources :users do
  member do
    get 'about'
    get 'comments'
    get 'friends'
  end
  collection do
    get 'get_my_rating'
    get 'recover_password'
    get 'get_last_comments'
  end
end
此外,您还可以向各种成员和集合规则添加:as=>“name_here”,以生成*\u url和*\u路径帮助程序。查看
rake routes
查找路由名称等

要覆盖REST创建的位置,请执行以下操作:

match '/users' => 'users#signup', :as => 'signup', :via => :post
请确保将此放置在参考资料之前:用户填充,因为rails尝试从上到下查找路径,并与第一个匹配匹配


还有一些要考虑的事情:从“用户/GETHyMyLead”(以及下面的2个)的名称来看,听起来这些都是比集合方法更多的成员方法,所以我会考虑将这些移动到成员块中,而不是将它们放在集合块中。只有我的2美分。

关于如何处理第二个问题的其他答案非常好,但是将
创建
操作重新映射为
注册
的最佳方法是使用该选项

在这种情况下,它应该类似于:

resources :users, :path_names => { :create => "signup" } do
    # All your other routing
end
但是,需要注意的是,
create
操作的URL从未显示给用户……create URL是通过
new
操作创建的表单发布到的。用户将看到的URL是
new
操作的URL

因此,您可能需要执行以下操作:

resources :users, :path_names => { :new => "signup" } do
    # All your other routing
end

关于如何处理第二个问题的其他答案非常好,但是将
创建
操作重新映射为
注册
的最佳方法是使用该选项

在这种情况下,它应该类似于:

resources :users, :path_names => { :create => "signup" } do
    # All your other routing
end
但是,需要注意的是,
create
操作的URL从未显示给用户……create URL是通过
new
操作创建的表单发布到的。用户将看到的URL是
new
操作的URL

因此,您可能需要执行以下操作:

resources :users, :path_names => { :new => "signup" } do
    # All your other routing
end