默认情况下,在rails控制器中使用渲染模板而不是渲染操作

时间:2014-10-01 22:02:36

标签: ruby-on-rails ruby-on-rails-3

我正在尝试实现以下行为: Tree of the project

你可以看到我有很好的标准视图结构用于控制器,但是“动作”部分,我创建了一个名为动作的文件夹,在其中我有部分动作。

我尝试使用“prepend_view_path”:

  def set_view_paths
    self.prepend_view_path ["#{Rails.root}/app/views/#{controller_name}/#{action_name}"]
  end

但轨道找到下一个:

Missing template "posts/index"
in ".../app/views/posts/index"

我需要在动作结束时添加类似的东西:

render template: 'index'

问题: 有没有更美妙的方法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

结帐SO thread。从阅读线程看起来并不像你有一个干净的方法来解决这个问题。唯一的方法是覆盖render

我不确定您为什么要将模板文件放入子文件夹中,但如果它没有为您提供任何好处,则可能更容易将index.html.erbshow.html.erb移出其子文件夹并将它们放在views/posts下。

这也将使其他开发人员(以及您自己,以后)更容易,因为您符合Rails约定。