【发布时间】:2012-09-26 23:30:04
【问题描述】:
我找不到使用其他视图的方法。
我想我可以用这个例子更好地解释它:我有两个控制器,IndexController 和 UserController。用户控制器有一个名为 login 的操作,其视图呈现登录表单并在其表单中的帖子发生时验证用户。
在IndexController 中,有一个名为home 的操作会呈现主页视图。在这个视图中,我想渲染loginform,但我想重新使用用户/登录视图。
在我使用过的几乎所有框架中,都有一种方法可以调用另一个控制器操作,以重用和隔离逻辑。
我发现,在 Rails 中,有一个助手 render,我可以通过以下方式调用它:
render 'user/login'
或
render :template => 'user/login'
在这两种情况下,我只会收到诸如“路由索引/登录不存在”或“控制器索引必须登录操作”之类的错误。此外,我将登录视图文件名设置为login 或_login。 (我读到它用于局部视图。)
【问题讨论】:
-
使用局部视图并将它们包含在您的标准视图中
-
默认的部分模板目录是
RAILS_ROOT/app/views/shared。
标签: ruby-on-rails ruby views