使用引擎创建没有路由名称的 redirect_to
Make a redirect_to without route name using Engines
我在 Rails 应用程序中使用引擎。这实质上意味着应用程序及其引擎可以具有相同名称的路由,并且它们不会发生冲突。
所以,我有两种类型的路线,引擎内部路线和外部路线,它们的名称不同:
加上路线名称:
引擎内部:
redirect_to main_app.books_show_path
引擎外
redirect_to books_show_path
但是我有一个 php 应用程序调用 rails 路由发送控制器和它想要去的路由的动作。
所以,我没有路线名称。
如果路线在引擎之外,我没有遇到问题,因为它有效:
redirect_to (controller: books,action: show)
但是当我想进入发动机路线内部时,我不知道该怎么做。我需要这样的东西:
redirect_to (controller: books,action: show,path: main_app)
$rake 路线 | grep 书籍
books GET /books(.:format) MiEngine/books#index
Routes for MiEngine::Engine:
books GET /books(.:format) MiEngine/books#index
我使用 url_for 和这些参数:
如果你有路线名称:
redirect_to url_for([nameOfYourEngine, nameOfYourRoute])
redirect_to url_for([main_app, 'books_show'])
如果你还没有得到路线名称:
redirect_to url_for([nameOfYourEngine,nameController, nameMethod])
redirect_to url_for([main_app,'books','show'])
我在 Rails 应用程序中使用引擎。这实质上意味着应用程序及其引擎可以具有相同名称的路由,并且它们不会发生冲突。
所以,我有两种类型的路线,引擎内部路线和外部路线,它们的名称不同:
加上路线名称:
引擎内部:
redirect_to main_app.books_show_path
引擎外
redirect_to books_show_path
但是我有一个 php 应用程序调用 rails 路由发送控制器和它想要去的路由的动作。 所以,我没有路线名称。 如果路线在引擎之外,我没有遇到问题,因为它有效:
redirect_to (controller: books,action: show)
但是当我想进入发动机路线内部时,我不知道该怎么做。我需要这样的东西:
redirect_to (controller: books,action: show,path: main_app)
$rake 路线 | grep 书籍
books GET /books(.:format) MiEngine/books#index
Routes for MiEngine::Engine:
books GET /books(.:format) MiEngine/books#index
我使用 url_for 和这些参数:
如果你有路线名称:
redirect_to url_for([nameOfYourEngine, nameOfYourRoute]) redirect_to url_for([main_app, 'books_show'])
如果你还没有得到路线名称:
redirect_to url_for([nameOfYourEngine,nameController, nameMethod]) redirect_to url_for([main_app,'books','show'])