问题标签 [custom-routes]

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 投票
2 回答
15699 浏览

ruby-on-rails - Rails3 Routes - 将参数传递给成员路由

我想将一个额外的参数传递给资源的成员路由

就像是:

我只能使用静态匹配语句来完成它

环顾互联网,我发现这在 Rails 3.0.2 中是可能的。我使用的是 3.0.1,但它确实不是。

难道我做错了什么?还是真的不可能?

谢谢

0 投票
2 回答
2299 浏览

ruby-on-rails - 用于 csv 的非资源的 Rails 路线

我有一个名为“修订”的方法,我希望能够使用相同的逻辑但输出到 csv。我想我想使用 FasterCSV gem。我需要的是添加到我的路线中以便获得 html 和 csv 输出的路线。我希望我的网址是这样的:

想法?

非常感谢!

0 投票
3 回答
3855 浏览

asp.net-mvc - ASP.NET MVC2 Route Constraint - 可选数字 id 参数

我在我的 ASP.NET MVC2 项目中设置了默认路由,并希望为我的其他一些控制器添加/修改它。假设我有一个带有 Details 操作的 Customer 控制器,该控制器期望和“id”参数(int)。例如:

如果用户输入“非数字”,如何添加将返回 404 的路由?我尝试添加以下“之前”默认路由,但它不起作用......

注意,如果可能的话,我想保留默认路由......我所有的控制器都使用“详细信息”和“编辑”,其中需要“id”(int)参数。我想知道是否有办法完成这无需指定多个路由(即通用的)......当然,目标是如果用户输入类似“/Customer/Details/apple”之类的内容,它不会引发错误,而是将它们带到错误页面.. .

还有这篇文章提示设置默认值,但我不知道该怎么做......

0 投票
1 回答
1815 浏览

ruby-on-rails-3 - Rails3 自定义控制器方法未路由:在 Rails2 中有效

我一直在将 Rails 2.3.8 用于我一直从事的项目,但刚刚将该项目迁移到 Rails 3.0.3。在消除了基本的错误之后,我现在遇到了一个自定义控制器方法的问题。

在gallery_controller 中,我有一个名为“extract”的自定义方法。在 rails 2.3.8 中,这工作正常,没有额外的配置。我可以去 /galleries/extract/:id ,它会做我想做的事。

现在,当我尝试使用表单中的原始代码创建指向它的链接时,该代码会破坏应用程序:

以及当我尝试访问带有此代码的页面时遇到的错误:

在查看 routes.rb 之后,我开始怀疑这会失败,因为

不包括在内,实际上已被弃用。

运行 rake 任务 | grep 'extract' 什么也没给我。

那么我应该如何解决这个问题?

0 投票
2 回答
1098 浏览

ruby-on-rails - RoR 自定义路由/方法/视图问题所有方法返回为未定义

我正在玩自定义视图和路线。我认为我做的一切都是对的,但显然不是。本质上我试图复制 show 方法和 show.html.erb 但由于某种原因它不起作用。

我的控制器

我的路线.rb

当我去

127.0.0.1:/父亲/1

它工作正常,但当我尝试去

127.0.0.1:/father/1/ofmine

它给出了以下错误。调用什么变量/方法并不重要;它出现在第一个要显示的位置。show.html.erb 和 show2.html.erb 都是完全相同的文件

我的网络服务器命令行错误

实际页面显示的错误

父亲中的 NoMethodError #show2

显示 /var/ruby/chs/app/views/fathers/show2.html.erb 其中第 7 行提出:

nil:NilClass 的未定义方法“名称”

提取的源代码(第 7 行附近):

4: 姓名 5:
6: 7: <%= @father.name %> 8:
9: 10: CityState

如果有人能告诉我世界上我做错了什么,我将不胜感激。

这是我的 rake 路线的副本

0 投票
1 回答
1338 浏览

ruby-on-rails - Rails 3 - 制作了一个新的控制器动作和视图,但无法路由它

我正在使用 Rails 3

我有一个名为subscriber_controller.rb 的控制器

我刚刚添加了一个名为“def houston”的操作并将其添加到我的路由文件中

但是每当我尝试访问“http://localhost:3000/houston”时,这是我的目标,我得到了错误

路由错误没有路由匹配“/休斯顿”

我还需要在路由文件中添加什么才能在控制器中找到正确的操作并使 url 作为http://localhost:3000/houston工作?

0 投票
1 回答
299 浏览

ruby-on-rails - rails 3中的伪复杂路线

我正在尝试使用 2 个自定义匹配器在 Rails 3 中创建一些不错的简单路线,这些匹配器假定根 :id 将是一个城市,而 :city_id/:id 将是一个地方......它似乎工作正常,除非尝试编辑.

IE。

这是我的代码更准确。

当我尝试编辑记录时,这似乎完全可以接受。html如下:

产生:

只有在以下情况下才会起作用:

我知道我可以简单地提供一个更高级的 form_for 路由来解决这个问题,但我想知道在我的 routes.rb 中是否有更好的事情可以让我的生活更轻松而不是打补丁?

谢谢

0 投票
3 回答
1693 浏览

ruby-on-rails - rails 3 路由问题(路由错误“没有路由匹配......”)

我正在使用 ruby​​ 1.9.2 和 rails 3,我认为我在路由方面遇到了一个比较简单的问题。

我有一个模型叫AdvancedQuery. 它的控制器是AdvancedQueriesController。 除了布线之外,几乎所有事情都以标准的轨道方式完成。我想更改 URL 的名称,还想更改其他一些内容(见下文)。

这是我的 routes.rb 文件的相关部分

这是我在使用 AdvancedQuery 时所期望的行为:

  1. 用户访问http://localhost:3000/advanced_query(获取请求),浏览器调用advanced_queries_controller. new.html.haml呈现给用户一个要填写的标准表格。
  2. 用户然后在搜索表单中输入数据并按“提交”
  3. “提交”调用“创建”方法并在数据库中创建“高级查询”记录。AdvancedQuery 对象有一个与之关联的 32 个字符的散列,它 1) 标识查询,2) 用作结果 URL 的一部分(参见步骤 4)。
  4. create 方法重定向到“search”方法,其中 AdvancedQuery 对象用于搜索第二个模型(称为 BusinessModel)。然后服务器呈现search.html.haml然后显示 AdvancedQuery 的结果,并在用户想要运行新搜索的情况下将原始表单重新呈现在与结果相同的页面上。此处生成的 URL 是:http://localhost:3000/advanced_query/blah(其中 blah 是与查询特别关联的 32 个字符的散列)。
  5. 现在,用户使用步骤 3 中生成的网页中的表单输入新的搜索词。他按下“提交”,应该再次调用“创建”方法(即我们重新执行步骤 3 和 4)。即创建一个新的AdvancedQuery。

以下是现实中发生的事情:

步骤 1 - 4 按预期工作。第 5 步给了我一个路由错误"No route matches "/advanced_query"

new.html.haml和文件都search.html.haml呈现相同的部分(称为_form.html.haml)。

所以,如果我看一下_form.html.haml,我真的看不出有什么问题:

这是我的控制器的相关部分

关于导致我的路由错误的任何想法?

谢谢!

0 投票
1 回答
256 浏览

routes - ASP.NET MVC 捕获路由 url 的其余部分

我想了解如何在 ASP.NET MVC 中创建“赶上其余”路线?
我需要获取格式化的 url,将一些数据读取到它的值中,然后获取链接的其余部分并将其保存到某个变量中,以便稍后读取并生成链接。
blog.mydomain.com/linker/process/2612010/2828/en/articles/october/asking-the-overflow/madd.aspx

读起来像:
memberid = 2612010
memberrating = 2828
language = en
restofurl = "articles/october/asking-the-overflow/madd.aspx"


或此链接:blog.mydomain.com/linker/process/2612010/2828/en/articles/october/read.aspx?m=828

读起来像:

memberid = 2612010
memberrating = 2828
language = en
restofurl = "articles/october/read.aspx?m=828"


或者

blog.mydomain.com/linker/process/2612010/2828/en/articles
到:
memberid = 2612010
memberrating = 2828
language = en
restofurl = "articles"


我考虑过类似的事情:

此路由正确获取链接的其余部分,但在末尾省略 URL 参数:blog.mydomain.com/linker/process/2612010/2828/en/articles/october/read.aspx?m=828

并仅 将articles/october/read.aspx
显示 为“restofurl”值。
我不需要经典的 url 获取参数分配给任何东西,只希望它们成为restofurl变量的一部分。

0 投票
2 回答
3335 浏览

ruby-on-rails - 在 Rails 3 中创建 SEO 友好的 URL

我目前有如下所示的 URL:

我希望有如下所示的 URL:

Rails 3 中是否有一种方法,无需对路由器中的所有类别和国家/地区进行硬编码,即可拥有我想要的 URL,也许使用find_by_name或类似的方法?解决这个问题的最佳方法是什么?