Tag: 路由

我可以直接从routes.rb渲染布局,没有控制器吗?

我想为网站的管理员和公共部门设置一对风格指南。 每个都需要自己的布局,其中包含静态html的混合和对erb partials的调用(因此静态页面不会剪切它)。 我不需要一个控制器来提供这些页面,我不希望什么是有效的开发内容,使其余的代码混乱。 这让我想知道是否有一种直接渲染布局的方法。 免责声明:我很欣赏这不是我应该经常/永远做的事情,我知道有很多争论为什么这是一个坏主意。 我对这是否可能感兴趣。 有没有办法让我直接从routes.rb渲染布局而无需通过控制器?

Rails在多个实例/服务器上重新加载动态路由

我们如何在多个服务器/实例上强制Rails重新加载路由? 我们在5个以上的实例上运行Google App-Engine中的多租户平台,我们希望所有站点都能从后端定义自己的路由集。 每当我们有一个新站点时,我们当前必须重新启动所有服务器才能访问新路由。 我们遵循了本指南,但它只适用于本地环境,并且不会在不重新启动服务器的情况下更新生产中所有服务器上的路由。 我们的路径文件如下所示: 的routes.rb Frontend::Application.routes.draw do root ‘home#index’ … DynamicRoutes.load end LIB / dynamic_routes.rb def self.load Frontend::Application.routes.draw do Site.all.each do |site| site.routes.each do |custom_route| route_name = custom_route[0] route = custom_route[1] # write the route with the host constraint self.constraints(:host => site.hostname) do case route_name when :contact_form mapper.match “#{route}”, to: ‘contact_forms#new’ as: “contact_#{site.id}” […]

rails 3.1 ActionController :: RoutingError(没有路由匹配“/assets/rails.png”):

标准的新rails应用程序出现了rails.png的问题 ActionController::RoutingError (No route matches [GET] “/assets/rails.png”): 我已经尝试将.png文件移动到资产和资产/图像中的各个位置以及较旧的地方“公共”或“公共/图像”并更改页面但没有任何帮助。 如果您已经看到并解决了这个问题,请回答。 我自己尝试过20种不同的组合。 版本:’rails’,’3.1.0.rc4′

将路由文件拆分为多个文件

我正在使用Rails 3应用程序,我想根据子域将路由拆分为单独的文件。 现在我在routes.rb文件中有这个: Skateparks::Application.routes.draw do constraints(:subdomain => ‘api’) do load ‘routes/api.rb’ end end 在我的routes / api.rb文件中,我有: resources :skateparks 这似乎不起作用,因为如果我运行rake routes我得到 undefined method `resources’ for main:Object 另外,如果我尝试导航到http://0.0.0.0:3000/,我会得到: 路由错误 No route matches “/”

RoR中的SEO友好URL

假设我有一个相对基本的CRUD应用程序来编辑音乐专辑。 在我拥有的数据库中: id | album_name | artist | navigation 1 Lets Talk Lagwagon lets-talk 但是,我不希望albums/1返回我的“ Show页面,而是希望通过albums/lets-talk自由albums/lets-talk路径访问该页面。 所以在我的控制器中我有: def show @album = Album.find_by_navigation(params[:id]) end 在我的索引视图中,我有: “albums”, :action => “show”, :id => album.navigation %> 这成功地执行了它的function,然而,Ruby API说我的link_to方法陈旧且陈旧而没有列出替代方案,所以我怀疑我的方法是错误的。

使用可选路径前缀创建路由

如何让我的路由识别可选的前缀参数,如下所示: /*lang/controller/id 因为lang部分是可选的,并且如果未在URL中指定,则具有默认值: /en/posts/1 => lang = en /fr/posts/1 => lang = fr /posts/1 => lang = en 编辑 理想情况下,我希望通过映射命名空间来跨多个控制器和操作执行此操作: map.namespace “*lang” do |lang| lang.resources :posts lang.resources :stories end