我正在尝试实现以下行为:
你可以看到我有很好的标准视图结构用于控制器,但是“动作”部分,我创建了一个名为动作的文件夹,在其中我有部分动作。
我尝试使用“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'
问题: 有没有更美妙的方法来解决这个问题?
答案 0 :(得分:0)
结帐SO thread。从阅读线程看起来并不像你有一个干净的方法来解决这个问题。唯一的方法是覆盖render
。
我不确定您为什么要将模板文件放入子文件夹中,但如果它没有为您提供任何好处,则可能更容易将index.html.erb
,show.html.erb
移出其子文件夹并将它们放在views/posts
下。
这也将使其他开发人员(以及您自己,以后)更容易,因为您符合Rails约定。