Tag: 自定义路由

Rails 3使用可选范围下的资源进行路由

我已经设置了这样的版本化API ,只需稍微调整即可实现向后兼容。 在我的路线中,我有: scope ‘(api(/:version))’, :module => :api, :version => /v\d+?/ do … scope ‘(categories/:category_id)’, :category_id => /\d+/ do … resources :sounds … end end 已达到成功的目标,让以下url到达同一个地方 /api/v1/categories/1/sounds/2 /api/categories/1/sounds/2 /categories/1/sounds/2 /sounds/2 我的目录结构是这样的: 我看到的问题在于我的观点中的链接世代。 例如,在声音节目页面上,我有一个button_to来删除声音 ‘Are you sure?’, :method => :delete %> 这会在表单action生成以下URL: “/api/sounds/1371?version=1371″ 此外, delete方法不起作用,而是作为POST发送 rake routes的有趣部分是: sounds GET (/api(/:version))(/categories/:category_id)/sounds(.:format) {:controller=>”api/sounds”, :version=>/v\d+?/, :action=>”index”, :category_id=>/\d+/} POST (/api(/:version))(/categories/:category_id)/sounds(.:format) […]

Rails 3.0.10,客户路线,post和form_for标签

我的路线中有这个: resources :events do collection do post ‘moderate’ end end 耙路线告诉我: moderate_events POST /events/moderate(.:format) {:controller=>”events”, :action=>”moderate”} 我有一个“管理”控制器,它只列出需要调节的事件: @modevents = Event.where(‘moderated 1’) 到目前为止,所有尚未审核的事件都可以在视图中显示: Display Stuff here 我想在循环中放置一个更新了审核值的表单,但对于我的生活,我无法弄清楚要放在form_for中的内容 – 我尝试过: moderate_events_path do |f| %> 返回的html是: 当我单击“提交”按钮时,我收到以下错误: Couldn’t find Event with ID=moderate 解决方案非常简单,在路线中将“post”更改为“put”: resources :events do collection do put ‘moderate’ end end 现在它可以正常工作。 更新,甚至自定义更新都是“放置”function。

自定义收集路由的polymorphic_path

我有以下路线定义: resources :documents do collection do post :filter end end 以及以下模型结构: class Document true end class User :documentable end 和控制器结构: class DocumentsController < ApplicationController def index # not important end def filter # not important end end 我可以轻松地在一个视图中说: polymorphic_path([@user, Document]) 获取路径/ users / 1 / documents ,但我希望能够说: filter_polymorphic_path([@user, Document]) 不幸的是,获取路径/ users / 1 / documents […]

在Rails 3中创建SEO友好URL

我目前的url如下: things?category_id=6&country_id=17 我希望url看起来像这样: /printer_cartridges/united_kingdom 在Rails 3中是否有一种方法,没有对路由器中的所有类别和国家进行硬编码以获得我想要的URL,可能使用find_by_name或类似的? 解决这个问题的最佳方法是什么?

Rails3路由 – 将参数传递给成员路由

我想将一个额外的参数传递给资源的成员路由 就像是: resources :events do member do get ‘register/:participant_type_id’ end end 我只能使用静态匹配语句来完成它 环顾互联网,我发现在Rails 3.0.2中这可能是可行的。 我使用的是3.0.1而且它不是。 难道我做错了什么? 还是真的不可能? 谢谢

Rails 3自定义路由,将多个ID作为参数

如何添加路由到我的Rails 3应用程序,这允许我有一个URL映射到RESTful资源中接受多个参数的操作: /modelname/compare/1234,2938,40395 然后在我的控制器中,我想访问这些ID: @modelname = Modelname.find(params[:modelname_ids]) 到目前为止,我一直在尝试匹配’/modelname/compare/:modelname_ids’, :to => ‘modelname#compare’ ,但我一直得到No route matches “/modelname/compare/4df632fd35be357701000005,4df632fd35be357701000005” 。 有什么建议?