Tag: url routing

Rails REST路由:资源项ID中的点

我在我的routes.rb中有以下内容: resources :users, :except => [:new, :create] do get ‘friends’, :as => :friends, :on => :member, :to => “users#friends” end 并在我的user.rb中关注: def to_param self.login end 例如,当登录点上的用户(例如’any.thing’)来自facebook时,rails会发出路由错误(找不到路由,我想这是因为它识别了点之后作为格式或路由约束的任何内容)。 我怎么能克服这个错误?

如何在Rails应用程序中实现虚荣URL?

我希望用户能够在site.com/myNameHere上找到个人资料页面。 Rails查找名为“myNameHere”的控制器。 是否可以设置routes.rb,以便在找不到控制器时,“myNameHere”作为参数发送到另一个控制器?

如何为Rails应用程序创建应用程序范围的slug路由?

我正在研究的Rails应用程序中有许多不同的模型。 我已经看到许多网站使用应用程序范围的slug路由方法。 这是什么意思? http://example.com/nick-oneill <– This points to a User object http://example.com/facebook <– This points to a Company object http://example.com/developers <– This points to the users#index page 我知道to_param并在应用程序中创建读者友好的slug,但是我不知道有一种方法可以为各种对象提供根级别的slu .. 您可以认为这类似于Facebook的Graph API:有不同的对象类型,但它们都存在于https://graph.facebook.com/object-id 任何见解都将非常感谢!

更改Rails 3开发的基本URL

我知道我将部署到我的应用程序运行的环境中,其基本URL如下所示: http://someserver/mydepartment/myapp 我的开发环境设置为使用默认的Rails配置,如下所示: http://localhost:3000/myapp 我想在我的开发环境中对此部署路径进行建模。 也就是说,我想使用基本URL进行开发,如下所示: http://localhost:3000/mydepartment/myapp 这样,我可以将所有url都设置为“/”,并且它们可以在两种环境中工作。 我如何更改它,以便我的应用程序将在我的开发环境中生活在这条路径上? 我找到的解决方案,但不适合我: 在routes.rb中设置scope似乎不适用于public的静态内容。 使用Apache的重写function。 我不想在我的开发盒上安装Apache。 理想情况下,该解决方案可以与WEbrick一起使用,但我似乎也使Mongrel工作得很好(Mongrel和Ruby 1.9.2存在一些问题)。 设置relative_url_root和类似的建议,这些建议不适用于Rails 3。 动态生成CSS / JavaScript并调整路径以补偿开发和生产环境。

在Rails 3.x中,如何为引用父资源的嵌套资源设计视图?

假设我有一个嵌套资源,如Rails指南示例: http : //guides.rubyonrails.org/routing.html#nested-resources resources :magazines do resources :ads end 这会将对/ magazine / newsweek / ads的调用路由到AdsController#index。 它需要URL中的magazine_id …我应该如何创建基于用于Ads#index的模板的视图,还包括父资源的上下文? 例如,拥有广告的所有父资源都会包含这些广告的表格列表。 但我希望视图的顶部包含每个杂志的样板信息。 如果/ magazines / newsweek / ads直接转到通用的AdsController#index,如何让#index视图意识到需要包含从Magazine模型生成的样板? 如果其他模型与广告有关系(TelevisionShow has_many:ads),我希望AdsController #index对这些也有不同的反应。 编辑: 这就是我过去通过MagazinesController完成这些事情的方式。 假设我想要一个单独的杂志#show action …路线将是: resources :magazines resources :ads get “magazines/:id/ads”, :controller=>”companies”, :action=>”ads” 控制器将是: class MagazinesController < ApplicationController def show … end def ads … end […]

与Rails中的url_for相反的是什么? 获取路径并生成解释路线的函数?

大脑有点油炸….我如何得到:控制器的哈希和来自relative_path的动作? 这基本上与url_for相反。 在下面的例子中,“some_function”是我正在寻找的神秘函数名称……我知道它很简单,只是记不住或者似乎无法在文档中找到它。 像这样: some_function(‘/posts/1/edit’) => {:controller => ‘posts’, :action => ‘edit’, :id => ‘1’}

如何断言Rails集成测试中没有路由匹配?

我有一个Rails 3集成测试,测试我的路线。 它包含以下测试: assert_routing( “/#{@category.url.path}/#{@foo.url.path}”, { :controller => ‘foo’, :action => ‘show’, :category => @category.to_param, :foo => @foo.to_param } ) 我还想测试一个没有路由匹配的情况。 显然,测试生成在这种情况下没有意义,所以我只需要assert_recognizes的反转。 我希望能够做到这样的事情: assert_not_recognized(‘/adfhkljkdhasjklhjkldfahsjkhdf’) 任何想法,缺少在assert_raises块中包装assert_recognize(实际上并不是那么可怕,现在我想到了它)?

自定义URL在轨道上的ruby

我知道rails使用控制器动作风格的url,比如www.myapp.com/home/index 我想在我的rails应用程序上有这样的url, www.myapp.com/my_page_here这是可能的,如果是这样,我该如何解决这个问题?

如何在使用Ruby重定向后获取最终的URL?

如果http://foo.com重定向到1.2.3.4然后重定向到http://finalurl.com ,我如何使用Ruby找到登陆URL“http://finalurl.com”?

使用Rails的动态路由3

我有一个任务是按照路由模型开发rails应用程序。 我需要有PageController和Page模型。 页面url必须与/contacts, /shipping, /some_page 。 我还需要CatalogController和Category模型。 类别url必须像/laptops, /smartphones/android 。 它将是ProductsController和Product型号, Producturl必须是行/laptops/toshiba_sattelite_l605 , /smartphones/android/htc_magic 我知道这个问题可以通过使用像这样的URL来解决 /page/shipping /catalog/smartphones/android 但客户不希望在URL中看到“ /page ”或“ /catalog ”的插入。 请告诉我解决这个问题的方向。 对不起,我的英语不好。