我需要将以下成员方法添加到许多资源中,有没有办法干掉它?
member do get :Votes post :up_Vote post :down_Vote end
在我的routes.rb
resources :news do resources :comments do member do get :Votes post :up_Vote post :down_Vote end end end resources :downloads do resources :whatever do member do get :Votes post :up_Vote post :down_Vote end end end
编辑
我实际上把它移到了一个像这样的模块中:
module Votable module RoutingMethods def votable_resources member do get "up_Votes" get "down_Votes" post "up_Vote" post "down_Vote" end end end # RoutingMethods end
现在,我的routes.rb看起来像这样:
require 'votable' include Votable::RoutingMethods MyApp::Application.routes.draw do namespace :main,:path => "/" do resources :users do resources :comments do votable_resources end end end end
请参阅我的内联注释,但我希望命名路由看起来像:main_users_comments_up_Votes
解决方法
你不能只在路线文件中定义一个方法吗?
def foo member do get :Votes post :up_Vote post :down_Vote end end resources :news do resources :comments do foo end end
编辑
我之前没有使用过这种技术.当我做“耙路线”时,它似乎工作.无论如何,routes文件只是Ruby代码.请注意您定义的方法的名称,因为它是在Actiondispatch :: Routing :: Mapper的实例中定义的.
# routes.rb MyApp::Application.routes.draw do puts self puts y self.methods.sort end # Terminal > rake routes
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。