Rails paths.rb 语法

2024-02-19

我搜索了又搜索,但找不到详细说明 Rails 3 中的routes.rb 语法的页面。有指南、概述,甚至高级示例,但为什么没有一个页面详细说明每个关键字的确切语法??这一页

http://www.engineyard.com/blog/2010/the-lowdown-on-routes-in-rails-3/ http://www.engineyard.com/blog/2010/the-lowdown-on-routes-in-rails-3/

包含许多高级示例,但没有花时间讨论所有给定示例的行为。如果有人能向我指出一个可以分解routes.rb 语法的页面,我将不胜感激。

这是我试图解决的问题。我有两个模型 modelA 和 modelB。关系是 modelA has_many modelB 且 modelB Belongs_to modelA。我在 modelA 的命名空间下为 modelB 创建了控制器。所以在我的 Rails 应用程序文件夹中,我有

app/controllers/modelA_controller.rb
app/controllers/modelA/modelB_controller.rb

我希望我的路线是这样的:

http://localhost:3000/modelA/:modelA_id/modelB/  [index]
http://localhost:3000/modelA/:modelA_id/modelB/:modelB_id  [show]
etc.

我在routes.rb中尝试了以下方法,但没有一个起作用:

resources :modelA do
  resources :modelB
end
--
resources :modelA do
  member do
    resources :modelB
  end
end
--
namespace :modelA do
  resources :modelB
end
--
match '/modelA/:modelA_id/modelB/action', :to => '/modelA/modelB#action'

我知道我尝试的一些方法显然是错误的,但是当你花了两天时间解决一个问题时,一切都会好起来的!


没有人有关于路由语法的“权威”指南的原因是它非常灵活,因此您可能可以就该主题编写几章。不过,我建议:http://guides.rubyonrails.org/routing.html http://guides.rubyonrails.org/routing.html

从你的问题来看,听起来你正在命名空间modelB under modelA但你还想要id for modelA位于路线本身内。

所以如果你的ModelBController看起来像:

class ModelA::ModelBController < ApplicationController
  # controller code here
end

那么你可以这样做:

resources :modelA do
  resources :modelB, :module => :modelA
end

但是,您确定要这样命名控制器吗?如果您只想像典型的那样嵌套资源has_many关系,你不需要命名空间modelB under modelA.

相反,你会:

/app
  /controllers
    /modelA
      # some files
    /modelB
      # some files

和你的modelB控制器将是:

class ModelBController < ApplicationController
  # controller code here
end

那么你可以做

resources :modelA do
  resources :modelB
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails paths.rb 语法 的相关文章

  • 如何在 ASP.Net MVC 中执行 301 永久重定向路由

    如何在 ASP NET MVC 中执行 HTTP 301 永久重定向路由 创建一个继承自 ActionResult 的类 public class PermanentRedirectResult ActionResult public st
  • 使用 Ajax 在输入时提交 Textarea,然后渲染部分内容而不刷新整个页面

    目前我正在尝试通过 JS 和 Ajax 在没有提交按钮的情况下发表评论 并且它有效 问题是当帖子提交时 页面重新加载到 post id comment页面 我希望它呈现部分内容 而不是刷新整个页面或将我带到不同的页面 我对 JS 不熟悉 任
  • 创建包罗万象的路由

    我在网上找到了几个在 ASP NET MVC 中创建包罗万象的路由的示例 尤其是在 StackOverflow 上 但这似乎在 MVC4 中对我不起作用 public static void RegisterRoutes RouteColl
  • 将 Rails 变量传递给液体可以在控制台中工作,但不在视图中

    我想将哈希传递给渲染方法 当我这样做时 在我的控制台中一切正常 object Object find params id hash object object to liquid template Liquid Template parse
  • 测量两个字符串之间相似性的有效方法是什么? (编辑距离使堆栈太深)

    所以 我从这个开始 http en wikibooks org wiki Algorithm Implementation Strings Levenshtein distance Ruby http en wikibooks org wi
  • 仅删除多对多关系

    我有一个 has and belongs to many friends join table gt friends peoples 要添加朋友 我会这样做 people followers lt lt friend这会创建关系和新的个人资
  • Rails、REST 架构和 HTML 5:带有预检请求的跨域请求

    在致力于使我们的网站 HTML 5 友好的项目时 我们渴望采用跨域请求的新方法 不再通过隐藏的 iframe 发布 使用访问控制 http www w3 org TR access control 根据规范 我们开始设置一些测试来验证各种浏
  • Asp.net core默认路由

    简化版Startup code public void ConfigureServices IServiceCollection services services AddMvc public void Configure IApplica
  • (Rails) Assert_Select 的烦人警告

    有谁知道如何让assert select在rake测试期间不输出所有那些讨厌的html警告 你知道 就像这样的东西 ignoring attempt to close body with div opened at byte 1036 li
  • Rails/Nginx 中的超时——最佳实践

    我正在开发一个应该在 Nginx 服务器上运行的 Rails 应用程序 根据输入 应用程序可能需要很长时间来处理请求 或者在出现错误时挂起 因此我想防止进程永远运行 除了确保客户端收到超时信号的 Nginx 配置之外 我想我可能仍然需要确保
  • 我在 Rails 中使用了保留字吗?

    这是我的模型 class Record lt ActiveRecord Base belongs to user belongs to directory end class Directory lt ActiveRecord Base h
  • 浏览器关闭时 Omniauth 会话过期

    在我的 Rails 3 应用程序中 我使用 Omniauth 进行用户身份验证部分 fb twitter 实际上我遵循这个 https github com RailsApps rails3 mongoid omniauth https g
  • Rails:named_scope、lambda 和块

    我认为以下两个是等效的 named scope admin lambda company id conditions gt company id company id named scope admin lambda do company
  • 即使在急切加载之后,belongs_to 关联也会单独加载

    我有以下关联 class Picture lt ActiveRecord Base belongs to user end class User lt ActiveRecord Base has many pictures end 在我的
  • 获取嵌套参数

    我有一个带有嵌套参数的表单 在下面的示例中 如何获取控制器中的 amount whole 值 Parameters utf8 gt authenticity token gt KCmBI6RLh0LdUsM2r5H1vhNykS1IXecF
  • 来自控制器的 Rails 验证

    有一个联系页面 可以输入姓名 电话 电子邮件和消息 然后发送到管理员的电子邮件 没有理由将消息存储在数据库中 问题 如何 在控制器中使用 Rails 验证 根本不使用模型 或者 在模型中使用验证 但没有任何数据库关系 UPD Model c
  • Angular 2 获取当前路线

    所以我需要以某种方式检查我是否在主页上执行某些操作 而在其他页面上则不执行此操作 该组件也在所有页面上导入 如果我在主页上 如何检测该组件 Thanks 尝试这个 import Router from angular router expo
  • 如何为 ApplicationController 中 after_action 过滤器中的所有操作渲染 json?

    是否可以在 Rails ApplicationController 中创建一个 after filter 方法 该方法在每个操作上运行并呈现为 JSON 我正在构建一个 API 并且希望将控制器中的每个操作的输出呈现为 JSON 客户控制器
  • 让 Rails 生产在端口 80 上运行

    我正在尝试让我的 Rails 应用程序在生产模式下运行 但遇到了一些困难 我正在使用 Passenger 和 apache 并运行 Ubuntu 12 04 我已经配置和创建了生产数据库 并设置了乘客 状态如下 rvmsudo passen
  • 仅针对 Rake 任务运行初始化程序

    我希望在执行 Rake 任务时运行某个初始化程序 但在运行 Rails 服务器时不运行 区分 Rake 调用和服务器调用的最佳方法是什么 Rake 允许您指定任务的依赖关系 最好的建议操作是将特定于 rake 的初始化放入其自己的任务中 而

随机推荐

  • 此平台不支持 Xamarin.iOS 操作 Newtonsoft.Json.Utilities.DynamicReflectionDelegateFactory.CreateDynamicMethod 出现异常

    我正在使用 Xamarin Forms 开发一个跨平台项目 在我的项目中 我使用 API 通过用户名和密码登录 当我尝试登录 Android 和 UWP 平台时 它运行良好 但是当我想登录我的 iOS 项目时 它会抛出一个异常 System
  • 基于其他表的SQL查询

    我有一个标准化表 Table TheMovies id MovieName 1 Zootopia 2 Moana 3 Toy Story Table TheGenres id GenreName 21 Action 22 Animation
  • 降低滑动视图中的灵敏度

    在 Xamarin 中 我将 SwipeView 作为 CollectionView 中的 ItemTemplate
  • 最适合 Web 开发的 Linux 发行版? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 案例类的复制方法是否使用结构共享?

    Scala 不可变集合中的结构共享非常简单 并且有很多材料可以理解它 现在每个 Scalacase class自动定义一个copy方法 它返回指定新属性的新副本 我的问题是 该方法是否使用结构共享 所以当我有一个 case class A
  • Xcode xcconfig:根据目标配置依赖项

    寻求解决 Objective C名称空间 https stackoverflow com questions 1474626 objective c function dispatch collisions or how to achiev
  • Raspberry Pi 3 上通用时钟框架驱动程序的 Hello World

    我正在尝试为通过 I2C 连接到 Raspberry PI 3 的时钟编写一个通用时钟框架驱动程序 注意 我对 Linux 和内核编程都很陌生 更新 成功 下面的代码适用于 Hello World 驱动程序 为了加载驱动程序 我必须对设备树
  • TYPO3 v8.7 JQuery 包含在内吗?

    我将 TYPO3 版本从 6 2 31 更新到 8 7 19 现在 JS JQuery 出现了一些问题 我听说 JQuery 自动包含在新的 TYPO3 版本中 是对的吗 提前致谢 你需要更具体地回答这个问题 是的 v8 提供了 jquer
  • Go 包是否应该使用 log.Fatal 以及何时使用?

    到目前为止我已经避免使用log Fatal 但我最近偶然发现了这些问题 代码覆盖率 https stackoverflow com questions 33873305 how to get 100 code coverage in gol
  • Sql Azure - 单独的服务器?

    首先我要说的是 我既不是数据库专家 也不是 Azure 专家 看来 MS 按 Sql Azure 数据库的大小和数量收费 而不是按服务器数量收费 因此 从成本角度来看 在每个服务器实例上放置一个数据库似乎是可行的 我的理解是 有时将数据库放
  • Javascript:文件构造函数的参数 1 无法转换为序列

    我正在尝试更改 a 的文件名File通过 JavaScript 对象
  • 如何用curl和php欺骗referrer? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要一个简单的完整 php curl 代码来欺骗引荐来源网址 我尝试了其他一些但不起作用 我检查的最后一个是这个 function
  • 如何禁用屏幕固定中生成的 Toast 消息?

    我正在开发锁屏应用程序 我想禁用主页按钮 我的应用程序是 设备所有者和设备管理员 现在我正在使用屏幕固定来禁用主页按钮 但是 如果我每次收到消息 屏幕已固定 并关闭 屏幕已取消固定 时就开始活动 并且如果单击主页 则 您的组织不允许取消固定
  • 关于c#中的静态类[重复]

    这个问题在这里已经有答案了 可能的重复 何时在 C 中使用静态类 https stackoverflow com questions 241339 when to use static classes in c 为什么有人会编写静态类 我们
  • 记忆化Python函数

    这是一小段代码 它将每个函数转换为其记忆版本 def memoize f Memoize a given function f def memf x if x not in memf cache memf cache x f x retur
  • 我可以通过编程方式将外部 exe 标记为“安全运行(未知发布者)”吗?

    所以我有自己的应用程序 main exe 在某些安全级别较高的计算机中 由于 未知发布者 它会显示警告 我试图 绕过 它 现在我知道了right方法是对程序集进行签名 购买证书并成为已知的发布者 然后它就不会显示此警告 但证书并不便宜 我的
  • 在没有 Google Apps 的情况下通过 Google Play 商店在私人渠道中部署应用程序?

    我正在构建一个 Android 应用程序 出于各种原因不能公开上市在 Google Play 商店中 我找到了有关的信息Google Play 私人频道 https support google com a answer 2494992 h
  • 在 xPages 中使用数据上下文有什么好处?

    我从未在 xPages 中使用过数据上下文 想了解其好处 如果我想返回内存中的某些内容 我经常调用 SSJS 脚本库中的函数 我相信该脚本库也存储在内存中 假设我在 ssjs 中有一个返回 Notesdocument 的函数 这个函数可能会
  • PHP 架构以及按引用传递与按值传递

    寻求PHP架构师的建议 我对 PHP 不是很熟悉 但已经接管了用该语言编写的大型分析包的维护工作 该架构旨在将报告数据读取到大型键 值数组中 这些数组通过各种解析模块传递以提取每个模块已知的报告参数 已知的参数将从主阵列中删除 并且任何模块
  • Rails paths.rb 语法

    我搜索了又搜索 但找不到详细说明 Rails 3 中的routes rb 语法的页面 有指南 概述 甚至高级示例 但为什么没有一个页面详细说明每个关键字的确切语法 这一页 http www engineyard com blog 2010