ruby-on-rails - 在 Rails 中使用自定义 Controller 时从 URL 获取资源名称

标签 ruby-on-rails ruby url rest resources

我有一组在运行时动态生成的路由,但它们都指向同一个 Controller ,即

map.resources :authors, :controller => 'main'
map.resources :books, :controller => 'main'

这些都工作正常,生成诸如 /authors/1/books/books/55 等路由,然后全部结束由“主” Controller 处理。

但是,我似乎找不到如何在 Controller 中获取资源的名称,即当 URL 为 /authors/books 时在索引操作中> 我希望能够确定它是哪个资源,即作者或书籍

我无法为此使用单独的 Controller 。

这可能吗?

最佳答案

编辑:完全更改答案,因为它已经关闭了。

因此,因为它更改了您在操作中看到的参数,所以您必须获取实际的 uri。这真的就像特里建议的那么简单。

 def index
   if request.request_uri =~ /books/
     #...
   else
     # if it is a author
   end
 end

这会将请求 uri(localhost:3000 之后的部分)与书籍进行比较,以便您可以看到用户请求的内容。

关于ruby-on-rails - 在 Rails 中使用自定义 Controller 时从 URL 获取资源名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/761051/

相关文章:

javascript - 实现多语言 url nextjs 和 next-i18n-next

ruby-on-rails - 在 Ruby on Rails 中保留表单提交失败的 URL

ruby-on-rails - Rails 与几乎所有其他模型的关联

ruby - 英雄数据库 :pull does not work?

java - 如何同步时间到安卓

java - JAX-RS/Jersey 资源路径是否支持继承?

ruby-on-rails - Rails 外部 URL 作为 View 中的链接

ruby-on-rails - 如何允许带有 * 键 => 值的哈希?

ruby-on-rails - 向 Active Resource 类添加非静态自定义方法的正确方法

ruby - Ruby 中的 "method"方法有什么意义?