ruby-on-rails – Rails 3路由:DRY成员
发布时间:2020-12-17 04:19:57 所属栏目:百科 来源:网络整理
导读:我需要将以下成员方法添加到许多资源中,有没有办法干掉它? 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 endendresources
我需要将以下成员方法添加到许多资源中,有没有办法干掉它?
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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |