【问题标题】:Can I render another controller's action from my current controller in Rails 4?我可以从 Rails 4 中的当前控制器渲染另一个控制器的操作吗?
【发布时间】:2013-08-29 07:51:13
【问题描述】:

可能有点傻,但在 Rails 4 中仍然可以从另一个控制器呈现动作吗?

在 UsersController 中像这样:

def new
  @person = User.new        
  render 'schools/create_person'
end

由于某种原因,它不断呈现 new.html.erb 而不是所需的学校/create_person.html.erb

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-4


【解决方案1】:

我不清楚你想要什么

但如果你想渲染视图,我可以建议一种方法

创建一个局部视图 (_create_person.html.erb),这对于 usersschools 都是通用的,然后

users文件夹new.html.erb

<%= render partial: "schools/create_person" %>

你可以在你的views文件夹中的shared文件夹中制作局部视图并渲染它

如果你想重定向

redirect_to create_person_schools_url #取决于你的路线定义

【讨论】:

  • 谢谢。我不希望它是部分的,因为它作为一个独立的模板独立工作。
【解决方案2】:

检查您的路线,看看您在学校路线中是否有方法 create_person。如果肯定试试redirect_to:

redirect new_school_person_path

new_school_person_path 作为该方法的路径。

【讨论】:

  • 谢谢。我意识到我需要开始另一个动作,而不仅仅是渲染视图。
猜你喜欢
  • 2014-05-28
  • 2011-08-28
  • 1970-01-01
  • 2015-10-25
  • 1970-01-01
  • 1970-01-01
  • 2016-02-03
  • 2017-09-30
  • 1970-01-01
相关资源
最近更新 更多