URL 路由中的点与命名空间 Rails 3.1

2024-06-19

我有这个路线.rb

root :to => "posts#index"

  devise_for :users,  :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }

  resources :users, :only => :show

  resources :boards 

  resources :posts do
  resources :comments
  end 

namespace :users do
 resources :posts do
  get :posts, :on => :member
 end
 resources :boards do  
  get :boards, :on => :member
 end  
end      

耙子路线:

  boards_users_board GET    /users/boards/:id/boards(.:format)        {:action=>"boards", :controller=>"users/boards"}
        users_boards GET    /users/boards(.:format)                   {:action=>"index", :controller=>"users/boards"}
                    POST    /users/boards(.:format)                   {:action=>"create", :controller=>"users/boards"}
     new_users_board GET    /users/boards/new(.:format)               {:action=>"new", :controller=>"users/boards"}
    edit_users_board GET    /users/boards/:id/edit(.:format)          {:action=>"edit", :controller=>"users/boards"}
         users_board GET    /users/boards/:id(.:format)               {:action=>"show", :controller=>"users/boards"}

如果我将此链接与 2 个参数放在一起:

<% @posts.each do |post| %>
   <%= link_to post.board.name, users_board_path(post.user, post.board) %>
<% end %>

我得到下一个带点的网址:

http://localhost:3000/users/boards/hyperrjas.board-2 http://localhost:3000/users/boards/hyperrjas.board-2

  • hyperrjas 是我与 slug :username 一起放置的 user_id。
  • 我使用命名空间是因为它们是嵌套资源,并且我有一个供用户使用的面板。

我的问题是:如何更改生成的网址中斜杠 / 的点?应该看起来和工作如下:

http://localhost:3000/users/boards/hyperrjas/board-2 http://localhost:3000/users/boards/hyperrjas/board-2


将用户路由移至嵌套路由下方。 Rails 将首先“赶上”上游路线。

您的问题实际上在于路线生成(以及一些排序)。如果您需要访问用户板,则不需要namespaced路线但是nested one.

如果你需要/users/:user_id/boards and /users/:user_id/boards/:id您将需要嵌套路线。请注意,在第二条路线中有 2 个参数(user_id and id)。如果您使用命名空间路由,那么您只“需要”一个(董事会id)。第二个参数是格式。请注意,在 rake 路由的输出中,您只“需要”1 个参数。

尝试下一条路线,看看它是否有效。

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

URL 路由中的点与命名空间 Rails 3.1 的相关文章

  • 对同一类型的多个项目使用“引用”

    因此 我正在自学 Ruby on Rails 并具有 PHP 背景 我编写了一个草率的 概念验证的 PHP 应用程序 名为 2NDP http rezich com storybored 我想在 Ruby on Rails 中重新创建它 但
  • Slim3 从 CSRF 中间件中排除路由

    我正在建立一个基于 slim3 框架的网上商店 我需要处理服务器到服务器的 POST 请求以确认付款是否成功 我将 csrf 添加到容器中 如下所示 container csrf function container return new
  • 是否有一个名称空间感知替代 PHP 的 class_exists() ?

    如果您尝试在 PHP 中的类方法内使用 class exists 则必须指定该类的全名 不考虑当前命名空间 例如 如果我的班级是
  • 如何定义 SoapVar 命名空间?

    我需要在 SOAP 请求中包含此节点 使用 1 1
  • 在environment.rb中设置的常量在开发模式下消失

    了解 Rails 缓存如何工作的人可以真正帮助我 这是嵌套在 Rails Initializer run 块内的代码 config after initialize do SomeClass const set SOME CONST SOM
  • RSpec:重新打开类时存根 Rails.application.config 值不起作用?

    我在应用程序配置中定义了一个选项 我想要测试的类是在 gem 中定义的 不是我编写的 我想重新开课 Myclass class eval do if Rails application config myoption value1 some
  • Javascript - 命名空间与闭包之间的区别?

    在 Javascript 中 命名空间和闭包有什么区别 他们看起来和我很相似 EDIT 具体来说 本文 https sparecycles wordpress com 2008 06 29 advanced javascript 讨论命名空
  • 覆盖生产环境中的后端资产

    我正在开发一个需要稍微改变 Refinery 的 WYMEditor 行为的项目 这可以通过重写轻松完成jquery refinery wymeditor js using rake refinery override并根据我自己的需要进行
  • 安装heroku toolbelt后出现Ruby错误

    我正在 win 7 32 位系统上使用 Heroku 但我没有管理员权限 我已经下载并安装了heroku工具带如下http community webfaction com questions 11803 heroku toolbelt h
  • 设计没有路由与指定删除的链接中的 [GET]“/users/sign_out”匹配

    因此 我四处寻找解决此问题的方法 大多数人似乎都说了同样的话 但对解决我的问题没有多大作用 我已在链接中指定了删除方法 但路由错误表明这是一个 GET 请求 知道为什么下面的链接最终会覆盖 忽略方法声明吗 Routes devise for
  • 将 mongoid 会话设置为只读

    我有不同的会话mongoid yml 其中一个会话提供来自静态 mongo 数据库的数据 我想知道是否有可能以只读模式 加载 会话 以便不进行任何更改save create destroy or destroy all可以制作 我的mong
  • 是否仍然可以在 Rails 4 中使用测试单元?

    从 Rails 3 2 升级到 Rails 4 后 我的应用程序可以运行 但我用测试单元编写的测试是一场灾难 据传 Minitest 与测试单元 兼容 然而 如果我尝试使用 现在捆绑的 Minitest 就会发现有很多差异 从断言 语句名称
  • 国家/地区的下拉菜单

    您好 我想为国家和州实现下拉菜单 州下拉列表应根据所选国家 地区更改其值 有没有任何插件或 gem 可以在 Rails 中执行此操作 尝试卡门插件 http autonomousmachine com posts 2009 4 1 carm
  • 我可以使用 ActiveRecord 与 Hstore 中的字段的关系吗?

    我可以使用 hstore 哈希中的字段通过活动记录 own to 将一个模型与另一个模型绑定吗 我将详细说明 我有一个用户模型 它根据权限通过 STI 在其字段之一上子类化为许多不同的其他用户模型 class User lt ActiveR
  • 如何在 Ubuntu 中使用 gems?

    我最近升级到 Ubuntu 9 04 但在使用 gems 时遇到问题 我使用 apt get 安装了 Ruby Rubygems 和 Rails 这rails命令确实有效 然后我安装了 capistrano 和其他 gem 例如 herok
  • 当用户信息属于公司设备时Rails设备

    我为公司创建了一个设计 我创建了一个用户表 希望我想要存储用户信息密码等 当用户注册时 我希望它创建一个新用户并与公司关联 我公司型号 has one 用户 我的用户模型 所属 公司 我应该如何覆盖注册控制器 此致 Rails 初学者 如果
  • 在 Rails 中使用 config.assets.precompile 将资源包含在子目录中

    我有一个在 Heroku 上运行的 Rails 3 1 3 应用程序 通过 S3 进行资产托管asset sync 包含在我的app assets css目录是一个包含两个文件的子目录 main css scss and categorie
  • Rails:has_many:通过还是has_many_and_belongs_to?

    我有一个应用程序 我想通过另一个模型将一个模型的实例链接到同一模型的另一个实例 即 Task1 gt Relationship 基本上 关系模型将具有额外的信息 关系类型 滞后 因此将其作为连接模型是理想的 然而 并没有两个模型可以加入 只
  • 后端验证轨

    如何验证文本列不包含网站 示例可以是 www google com google com http gooogle com http www google com https www google com https google com
  • Heroku 带宽和空间

    Heroku 对于免费应用程序支持多少流量带宽和磁盘空间 Heroku 免费版有一个 5 MB 的数据库和 1 个 dyno dyno 是运行并响应请求的应用程序的实例 此外 您的 slug 的大小有 100 MB 的限制 这包括您使用的所

随机推荐

  • 在 main 之前执行任何函数[重复]

    这个问题在这里已经有答案了 我想在 main 之前执行用户定义函数 是否可以先执行一个函数main in c sum int a int b return a b g sum sum 1 5 main sum 5 6 printf d g
  • 将变量设置为函数调用以在 PHP 中的 if 语句中使用

    好的 我正在做一些 Wordpress 编辑 并且编写了一个 if 语句 正如您所看到的 这使用函数调用作为变量 这是因为函数调用会调用当前页面的名称 这很好 然而 当我这样做时 它也往往会与页面上的标题相呼应 这是有道理的 我可能正在尝试
  • 如何使用“index_mut”来获取可变引用?

    即使当我实施IndexMut对于我的结构 我无法获得对结构内部向量元素的可变引用 use std ops Index IndexMut struct Test
  • 模板策略模式

    我想分解一个类 使其与执行某些任务的逻辑分离 以便用户可以按照自己的意愿编写新策略 而不会干扰中心模型 因此 我想使用模板化策略类 但不必让策略的用户被模板化 class Model boost shared ptr lt Strategy
  • 如何覆盖flask-security的登录?

    我想在用户登录时进行一些自定义 问题是该项目正在使用flask security 它隐式处理用户登录 我想在用户登录时检查数据库中用户的一些记录 如何覆盖烧瓶安全中的 登录 功能 I saw a 类似的帖子 https stackoverf
  • 从子域重定向到域+ .htaccess

    我可以为多个域配置 RewriteRule 吗 就像我的要求是 我当前的域名 www maindomain com 假设我有三个域和子域 子域网址是 example1 maindomain com example2 maindomain c
  • 如何在 Moderngl EGL 后端添加深度缓冲区?

    此代码渲染一个带有抗锯齿功能的彩色三角形 samples 8 当深度缓冲线depth attachment ctx depth texture 512 512 samples 8 被评论 但是当我添加深度缓冲区时 它会在绑定处返回 GL 错
  • 使用图表时避免使用“激活”和“选择”(Excel)

    我知道使用Activate and Select在 Excel 中 VBA 不是最佳实践 我看过有关如何在处理范围时避免它们的参考资料 例如 LINK https stackoverflow com questions 10714251 e
  • 使用 Scala 进行网页抓取 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • JavaScript 跨浏览器单击 HTML DOM 元素

    是否有可用的普通 JavaScript 跨浏览器函数能够触发 HTML DOM 元素 包括 div 等非表单元素 上的单击事件 大多数走这条路的人要么最终开发自己的事件管理系统 这并不难 但很烦人 要么在可用的功能范围内工作 如果所有浏览器
  • 如何创建在特定范围内开始和结束的条形图

    我创建了一个计算机模型 只是为了好玩 来预测足球比赛结果 我进行了计算机模拟来预测一支球队将获得多少分 我得到了每个团队的模拟结果列表 我想绘制诸如置信区间之类的东西 但使用条形图 我考虑了以下选择 我考虑过使用 matplotlib 的烛
  • 如何删除 Apache Kafka 中的多个主题

    假设我有许多具有相同前缀的主题 例如 giorgos topic1 giorgos topic2 giorgos topic3 用于删除单个主题的命令 例如giorgos topic1 如下 bin kafka topics sh zook
  • Postgresql 一张表的多个计数

    我想从表中的两列中获得这些列中值的统一计数 例如 两列是 表 报告 type place one home two school three work four cafe five friends six mall one work one
  • 何时/为何使用/定义接口[重复]

    这个问题在这里已经有答案了 可能的重复 何时最好使用 java 中的接口 https stackoverflow com questions 2586389 when best to use an interface in java Hi
  • 视图绑定对应用程序大小的影响有多大?

    View Binding 按照文档的规定 为每个XML元素生成一个Binding类 以方便访问和检查 并减轻如下的时间负担 findViewById 虽然findViewById通过更昂贵的关联搜索进行操作 由于映射 绑定应该 直接 访问
  • 如何设置引导开关的 css 颜色?

    如何在此引导开关中将蓝色更改为另一种颜色 我尝试更改输入元素的颜色和背景颜色 但它没有更改开关颜色 这是 html 和 bootstraplink https getbootstrap com docs 4 2 components for
  • 计算从给定日期开始的月份中的第几天?

    我正在努力寻找一种简单有效的解决方案来计算每月的工作日 例如 如果给定日期是第一个星期一Monday 5th March 2018然后我想获取接下来 6 个月每个月第一个星期一的日期 例如 Monday 2nd April 2018 and
  • 如何从 SOAP 响应中删除额外的结果标签

    我知道这个问题以前曾被问过 但我在任何地方都找不到答案 问题是我的 asmx 文件中有以下代码 namespace IrancellSmsServer SoapDocumentService RoutingStyle SoapService
  • Java-线程与CPU的关系

    我对多线程还很陌生 我正在开发一个项目 尝试在我的 Java 程序中使用 4 个 CPU 我想做类似的事情 int numProcessors Runtime getRuntime availableProcessors ExecutorS
  • URL 路由中的点与命名空间 Rails 3.1

    我有这个路线 rb root to gt posts index devise for users controllers gt omniauth callbacks gt users omniauth callbacks resource