问题标签 [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 回答
115 浏览

ruby-on-rails - 基本 Rails 3 路由问题

我正在尝试在我正在处理的 Rails3 应用程序中创建一些干净的 URL……但我很难理解如何(或者如果我什至应该)自定义我的路由以使其工作。

这是示例:

我有一个商店列表。每个商店都属于一个类别(健康、运动等)。每个商店都有一个位置。

我有两种方式来呈现数据。一个显示是目录类型结构中所有商店的列表,另一个显示在地图上。

理想情况下,我希望我的 URL 可以像这样工作:

/stores/health/map(或/stores/map/health)仅在地图上显示健康存储(本质上,地图参数影响显示哪个视图,但仍使用索引控制器......使用集合在我的路线中似乎不适合)

我想要的另一个 URL 是 /stores/sports/ 以仅在目录视图(默认)中显示体育用品商店...

我不完全清楚如何操纵路线来处理这个......

这是我当前的路线,它并没有真正为我做这件事:

最重要的是,我希望能够在不使用 ?query=params... 的情况下添加过滤器,所以:

/stores/sports/hockey ,基本上只会过滤掉曲棍球商店......

使用 ?query 执行此操作没有任何问题,它只是将我的参数放入我想要实现的更好的 URL 中。

该文档似乎没有概述我正在尝试做的事情,所以我假设我尝试做的事情是错误的。

这是破坏 REST 吗?我是在向后看吗?

谢谢你的帮助,JD

0 投票
1 回答
107 浏览

ruby-on-rails - 带有长类名的 Rails 路由错误

我对 Rails 的多元化和骆驼化感到困惑。尤其是我长而清晰的名字。

我有一个User模型和一个Account模型。我还有一个user_to_account_log_history模型和控制器,用于保存两者之间的传输。关系已建立。

我跑了...

...创建了以下内容:

我的路线似乎就位(rake routes输出,截断):

但我得到一个uninitialized constant UsertoaccountloghistoriesController. 为什么?我感觉是长名字的驼峰式和复数化把事情搞砸了。

0 投票
1 回答
3671 浏览

ruby-on-rails-3 - Rails POST 表单到漂亮的 URL

有一个“我显然做错了什么”的时刻。感觉就像我正在尝试做一些基本的事情,并与框架作斗争,所以我正在寻求帮助!

我正在使用 Rails 3,对如何制作一个搜索表单以产生具有干净 URL 的页面有点困惑。

我的应用程序允许您搜索从任何位置到另一个位置的路线。

例如,有效的 URL 是 /routes/A/to/B/,或 /routes/B

我的路线.rb:

我的搜索表格:

控制器:

当我:method => 'get'在我form_tag的 中使用时,应用程序可以工作,但 URL 很可怕。而且,当然,使用:method => 'post',变量不再可见,这对书签不利。发布表单后如何告诉 Rails 使用我漂亮的 URL?

我是 Rails 的新手,非常感谢您的耐心等待。

0 投票
2 回答
1208 浏览

ruby-on-rails - Rails 3 路由到错误的控制器

我想创建一个新动作,我称之为“showemployees”。这就是我已经做的:

-> 在控制器中:

-> 创建 app/views/employees/showemployees.html.erb

-> 在配置/路由中

match "/employees/showemployees" => "employees#showemployees"

我认为现在通过localhost:3000/employees/showemployees打开 showemployees.html.erb 就足够了,但似乎 Rails 仍然通过 show 操作(来自资源:employees)进行路由并且不采取 showemployees-action,因为它告诉我

我需要更改什么才能让 Rails 采取 showemployees-action?


我的路线的源代码:

0 投票
2 回答
435 浏览

ruby-on-rails - Rails 3:检查 rails 代码中的路由错误

我的网站上有很多课程。我有一个“去课程”表格。当用户输入有效的课程名称时,我成功地将该用户重定向到该课程页面。

这适用于所有有效输入,即如果路由存在。当用户输入无效的课程名称会导致无效的路线时,我想处理错误情况。我想检查代码中的路由错误,并通过错误消息通知用户。这可能吗?”

0 投票
2 回答
29 浏览

ruby-on-rails - 关于路由的问题

我想阅读我的表的所有记录。这是我的代码

控制器:

看法:

和路由文件:

正如我对 CRUD 的理解,我应该只写资源:vorlesungs但是如果没有match 'vorlesungs' =>'vorlesungs#list',我的代码将无法工作,请有人告诉我这个原因吗?

0 投票
1 回答
40 浏览

ruby-on-rails - 更新 rails 2 路由到 rails 3

嗨,我被一些铁轨路由困住了,

这在 rails 3 路由中应该如何看?:

0 投票
1 回答
965 浏览

ruby-on-rails-3 - Rails 3 命名空间路由错误 - 路由存在但不工作

这已得到修复。我想当我从我写的另一个视图复制它时,我已经离开了 :method => 放入表单助手。虚惊。

我的 rails 3 应用程序中有一条路线显示在“rake routes”中,但最终引发了 no route matches 错误。

我正在尝试创建一个命名空间路由,用于在 current_user 管理的公司下创建和添加新用户。命名空间是“公司”。应该处理此操作的控制器是“users_controller”,它位于 controllers->company 文件夹内。

我的 routes.rb 文件包含以下代码:

我的 app->controllers->company 文件夹下的 users_controller.rb 包含以下代码:

app->views->company->users->create.html.erb 下的 create 操作的视图包含:

最后,当我运行“rake routes”命令时,我得到了这个:

“新”动作渲染得很好。提交表单后我收到的错误是:

我正在使用设计 gem 进行身份验证,如果需要,可以提供有关我的应用程序的更多详细信息。到目前为止,我添加的所有其他内容都很好。我猜这与我如何定义命名空间有关。我对 Rails 还是很陌生,这是我第一次尝试命名空间路由。

如果我提供的信息太多或太少,我深表歉意。任何帮助是极大的赞赏。

0 投票
1 回答
457 浏览

ruby-on-rails - 没有路线匹配范围内的资源

  1. rails new example
  2. rails g scaffold widget
  3. rake db:migrate
  4. 编辑 routes.rb 如下:scope ":year" do resources :widgets end
  5. curl http://0.0.0.0:3000/2011/widgets是成功的
  6. echo "Widget.new.save" | rails c
  7. curl http://0.0.0.0:3000/2011/widgets/1是成功的
  8. 但现在失败并出现以下错误:curl http://0.0.0.0:3000/2011/widgets

No route matches {:action=>"show", :controller=>"widgets", :year=>#<Widget id: 1.. ETC。

为什么它认为这个动作是“表演”?为什么它认为年份是一个小部件实例?很奇怪。我在 rails 3.0.9 和 3.1.0.rc6 中得到了相同的结果。

在此先感谢您的帮助。

0 投票
1 回答
35334 浏览

ruby-on-rails - 带有可选参数的路由

我在路由文件中添加:

我还补充说:

显示最新的书籍而不指定年份。

但它不起作用,如果我没有通过一年,它在“show_book/NAME”中找不到路线。

你有什么想法为什么它不起作用?

谢谢 !

PS。我知道我可以将年份用作“?year=XXXX”的参数,但我想将年份用作 URL 的一部分