【问题标题】:How to render the same view for all actions in the same controller?如何为同一控制器中的所有操作呈现相同的视图?
【发布时间】:2013-02-26 19:25:27
【问题描述】:

我想在控制器中为我的所有操作呈现相同的视图。例如,我有:

class FooController 
  def action1
    #action1 code
  end

  # [...]

  def actionN
    #actionN code
  end 

end

然后我希望所有操作都呈现generic_page.html

我试过了:

...
after_filter :render_generic

...
private 
  def render_generic
    render 'generic_page'
  end

但是在after_filter 之前调用了render 方法,我收到Template Missing 错误,因为它没有呈现正确的模板。有谁知道这个问题的简单解决方案?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    使用rescue_from

        class FooController
          rescue_from ActionView::MissingTemplate do
            render 'generic_page'
          end
    
        end
    

    【讨论】:

      【解决方案2】:

      我只想说清楚:

      def action1
        #action1 code
        render_generic
      end
      
      def actionN
        #actionN code
        render_generic
      end
      
      private
        def render_generic
          render 'generic_page'
        end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-09-19
        • 1970-01-01
        • 1970-01-01
        • 2017-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多