![]() |
1
1
您应该使用机架中间件拦截请求,然后为您的正确Rails应用程序重写URL。这样,您的路由文件仍然非常简单。
在中间件中,您查找与路径关联的实体,并将URL重新映射到简单的内部URL,从而允许Rails路由发送到正确的控制器并正常调用过滤器链。 更新 下面是使用 Rails Metal 组件和您提供的代码。我建议您考虑简化如何查找路径段,因为您使用当前代码复制了大量数据库工作。
要了解如何使用金属和机架,请查看Ryan Bates的Railscast。 episode on Metal 和 episode on Rack . |
![]() |
2
1
与实例化其他控制器不同,我只呈现一个不同于PathController的Show操作的模板,这取决于路径是否与某个部分或文章匹配。即
原因是,虽然您可以在另一个控制器中创建一个控制器的实例,但它不会按您希望的方式工作。也就是说,第二个控制器将无法访问您的参数、会话等,然后调用控制器将无法访问实例变量和呈现在第二个控制器中发出的请求。 |
![]() |
Animesh Arya · 关联模型的Rspec 2 年前 |
![]() |
Kellen · 查看$卷展栏功能列表 2 年前 |
![]() |
Akshit Thakur Ak · 我怎样才能把铁轨停下来? 2 年前 |
![]() |
solidsnake99 · Rails db:如何绕过验证 2 年前 |
![]() |
Spyros · 从数组中删除nil值,并从引用数组中删除相应的项 2 年前 |
![]() |
Pauli-E · 当div打开并滚动到屏幕上时,向div添加类 2 年前 |
![]() |
ejoka · 如何使用Rails 7模型属性作为CSS标记值 2 年前 |