ruby-on-rails - 一个 Controller 使用另一个 Controller 的 View 进行渲染

标签 ruby-on-rails view controller render

我有 QuestionController 我现在有 AnotherQuestionController ,其操作应该使用 app/views/question/中的模板和部分进行渲染 这可能吗?看起来应该是这样。

我已经尝试过

render :template => "question/answer"

但是answer.html.erb 包含部分内容,我收到类似

的错误

“ View 路径中缺少模板 another_question/_my_partial.erb”

那么有没有办法告诉 Rails“将 AnotherQuestionController 视为其 QuestionController 并在 app/views/question 中查找 View 和部分”? 或者我是否必须创建 app/views/another_question - 这将导致重复(这不能是 Rails 方式)。

谢谢

最佳答案

模板渲染应该确实有效

 render :template => "question/answer"

您遇到的问题是部分内容查找到了错误的位置。修复方法很简单,只需在任何共享模板中将您的部分设置为绝对即可。例如,question/answer.html.erb 应该有

<%= render :partial => 'question/some_partial' %>

与平常不同

<%= render :partial => 'some_partial' %> 

关于ruby-on-rails - 一个 Controller 使用另一个 Controller 的 View 进行渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1013152/

相关文章:

c# - 无法使用集合初始值设定项初始化类型,因为它未实现 'System.Collections.IEnumerable'

ruby-on-rails - emberjs 和 Foundation4

ruby-on-rails - ActiveRecord(Rails)中是否有类似 create_view 的东西?

mysql - 在 cloud9 上安装 mongrel 报错

design-patterns - SOLID GRASP Controller 模式?

FLUTTER - 如何防止 RiveAnimationController 在播放结束时重置?

ruby-on-rails - 从同一个 api 向 2 个不同的应用程序发送 apn 通知

ios - 拖放 2 个不同的 View

android - roboguice 注入(inject)客户

sql-server - 无法在 View 'View_Table_Name' 上创建索引,因为该 View 未绑定(bind)架构