我有一组在运行时动态生成的路由,但它们都指向同一个 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/