问题标签 [rails-routing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3115 浏览

ruby-on-rails - Rails 的资源在没有 ID 的情况下进行了“显示”映射,并创建 /users.id 链接而不是 /users/id

对于我当前的路由,以下 ruby​​ on rails 代码:

这会产生如下链接:

反过来,Ruby on Rails 很难理解这一点,因为它期望1是以下格式:

对于 Rails 来说,这样路由它并不完全有意义,因为它更应该是/users/1. 但是,手动尝试会得到以下结果:

使用 ?id= 参数手动输入 ID,例如/users?id=1,可以正常工作。

问题是,我不明白 users.id 来自哪里,也不知道如何修复 - 我的路由文件看起来像

除了上面提到的之外,所有操作都可以正常工作,但我想找出原因。rake routes如下所示:

这里的问题似乎是 users#show 似乎已经取代了 users#index,这对 /users 来说是正确的做法。由于就手头的问题而言,这几乎都是默认路由,没有自定义路由,所以我在这里一无所知。有任何想法吗?

编辑: users#show 代码很简单:

0 投票
1 回答
1668 浏览

ruby-on-rails-3 - 如何解决这些冲突的 Rails 路线?

我的 routes.rb 中有一个如下所示的条目:

这会创建如下所示的路线:

但是现在,当我调用 /baskets/owned 时,我得到了这个:

解决此路由冲突的最惯用方法是什么?

0 投票
1 回答
111 浏览

javascript - SO WMD 编辑器 javascripts 加载 RoutingError

我敢肯定,这个问题的答案非常简单:

我正在尝试将 derobins ( Here ) 中的 WMD 编辑器与我的 rails 应用程序一起使用(这是我在输入时使用的 SO 上的那个)。但由于某种原因,js 文件(showdown.js 和 wmd.js)没有加载。

在控制台中,我收到了错误:

ActionController::RoutingError (没有路由匹配 "/public/javascripts/wmd") ActionController::RoutingError (没有路由匹配 "/public/javascripts/showdown")

...尽管这两个文件 - wmd.js 和 showdown.js 都在 [myapp]/public/javascripts 中。


自述文件说要包括这样的文件:


...我尝试过,但这没有用(我认为原因很明显)。

所以我把它们包括在内:

我已经..在开始时尝试了这些(例如src="..public/"),没有/, 并且有和没有.js.

感激地收到任何帮助。

0 投票
1 回答
2283 浏览

ruby-on-rails - Rails:静态资源的路由

我有 css/html 内容,js 用于脚本路径,css 用于样式表,但我的脚本位于 javascript 文件中,样式表路径中的样式。

如何配置 routes.rb 以将所有 img 请求映射到 images 文件夹、将 js 映射到 javascripts 文件夹以及将 css 请求映射到 stylesheets 文件夹?

0 投票
1 回答
124 浏览

ruby-on-rails-3 - Rails3:在设计登录后,路由到数据库中标识的文档

我的 Rails3 应用程序使用 Devise 进行身份验证。

在单击“登录”按钮后,我希望每个用户都被路由到给定的文档(该文档的 ID 存储在数据库中,经常更改)。

在 Rails3 中是否有最佳实践来处理这个问题?

我看到两个选项:

  1. 创建一个大页面,它检查数据库并相应地呈现适当的文档。

  2. app/controllers/application_controller.rb中,检查数据库并相应地路由到正确的文档。

哪个最好?有什么更聪明的主意吗?

0 投票
1 回答
2262 浏览

ruby-on-rails - Rails 3 路由通配符

我目前正在 Rails 3 应用程序中设置路线,如果有人能指出我正确的方向,我将不胜感激。

本质上,我正在设置一些路线来为一些链接的下拉菜单提供数据,并且希望能够拥有如下路线:

其中 01299999 和 02299999 是两个不同参数的 id(在这种情况下,假设 01299999 将 :vehicle_make 加载到参数中,02299999 是 :fuel_type 在参数中)。我知道我可以确保它们被路由到正确的控制器操作并通过使用约束加载正确的参数。

然而,使这变得复杂的是,我希望能够以任何顺序在 url 中指定多个选项,例如:

或者

这些将根据 ID 号的结构加载正确的参数(因此,如果它以“012”开头,则应始终为:vehicle_make,如果以“022”开头,则应始终为:fuel_type。我该怎么做?

附带说明一下,如果有人能指出如何限制我的模型的 id 列,那就太好了,这样当创建车辆制造商时,它的 id 应该始终以 012 开头,依此类推。

感谢您的帮助!

0 投票
1 回答
205 浏览

ruby-on-rails - Rails 3 路由:我有“/products?cat=1”,我想要“/art”

我对 Rails 相当陌生,发现自己对路由配置感到困惑。

在我的项目中,我有 2 个模型:产品和类别。产品属于_to Category,Category has_many Product。

Products 控制器有一个 index 动作,它带有一个可选cat参数。当存在时,cat参数将产品列表过滤为该类别中的产品。很基本的东西。

想要的是获得mysite.com/art与 相同的结果mysite.com/products?cat=1,其中“艺术”是类别 1 的 slug。我定义了其他几条资源丰富的路线,包括一条用于产品的路线:

我也想/products/some-product-slug指出products#show

我正在使用 Rails 3。如何进行此路由设置?

0 投票
1 回答
1842 浏览

ruby-on-rails - 在 Rails 中从 REST 获取 Post 数据

这是一个很长的问题,所以如果需要一段时间才能掌握,我深表歉意。我会尽可能简单。

我在这里开始有点绝望,但我已经很接近了。我一直在努力使用 Ruby,并与 post 和 net::http 进行通信。所以我现在得到的是一个哈希被转换成 json。使用来自 net::http 的 post 请求通过网络发送,然后我试图将其转换回对象。

我探索的一条路线是活动记录和活动资源,但在双方遇到一些问题后决定定义我自己的模型,然后研究如何转换并发送它。

我的模特

此模型称为 customRequest。在其中我有 post_me,它将 2 个类变量转换为哈希,将其转换为 json,然后发送它。

简而言之,这就是自定义请求。

问题

我担心的位是:

  1. 接收 URL,我写了 add.json,因为格式是在控制器路由中确定的。不知道有没有必要?
  2. 从变量生成哈希并将其发送以进行重建更好还是将整个类转换为_json并发送它更好?

如果我在 rails 控制台中按原样创建类并发送它,我会在终端中得到一个不错的 200 和响应。

更多细节

(注意:如果您真的想知道场景中发生了什么,请仅阅读此部分)

继承人相同的响应如果我不将其转换为 Json:

请如果有人可以回答问题1和2我会很高兴


服务器端

这是需要接受请求并将其转换回 Json 和对象的服务器端。我尝试了很多不同的东西,大多数都被注释掉了。

基本上我会得到一个带有标签中详细信息的 200 响应,但是当我尝试放置散列对象时,我什么也得不到/

这是将其分解并将其变回对象的多次尝试。

它们几乎都一样,除了一个是我试图从发送的哈希重新创建对象,另一个是我试图重新创建 hash_to_json 到 hash_from_json

更多问题

所以:

  1. 我是使用 params(:myHash) 正确创建对象还是应该单独引用每个变量?
  2. 参数是否会自动转换回可读格式,还是我需要从 JSON 转换或解析 JSON。关于这一点,我使用哪一个有关系吗?
  3. 我是否正确地重建了对象,为什么我没有显示任何内容?
  4. (可选)此后有没有简单的方法将其存储在表格中?
0 投票
2 回答
490 浏览

ruby-on-rails - Ruby On Rails REST:自定义 POST 请求的 URL 模式

我是 Ruby On Rails 的新手,需要一些帮助来实现 REST 协议。

每当您在 REST 上进行 POST 时,您都会返回一个 URL,例如http://my-site.com/id/1 ,我需要一个 URL 格式的自定义响应,我在上面的示例中给出了该响应。假设我正在发布关于参数<main-id>123</main-id> 的帖子我正在寻找的自定义响应是http://my-site.com/123/id/1 我想要实现的是,无论我在帖子期间传递的任何参数 ID,我都希望将其作为响应 URL 输出的一部分。

感谢您提前提供任何帮助。

0 投票
4 回答
925 浏览

ruby-on-rails - rails 3中路径助手的路由问题

我的路线包含以下内容:

我的观点包含:

Rails 无法识别 edit_individual_drop_ship_orders_path

在我的控制器中,我添加了 edit_individual 操作。

我的错误:#<#:0x000001067314a8> 的未定义局部变量或方法`edit_individual_drop_ship_orders_path'

有人可以帮我吗?

谢谢