【问题标题】:Calling a controller from another从另一个控制器调用
【发布时间】:2009-12-02 16:01:02
【问题描述】:

我想从另一个控制器调用一个控制器的动作。

我该怎么做?

几年前,有组件,但它们不再可用。

最好的问候

【问题讨论】:

    标签: ruby-on-rails controller


    【解决方案1】:

    您不能调用其他控制器的操作方法。
    你只有两个解决方案。

    重定向到适当的 URL。

    redirect_to '/'
    

    当然,如果你有来自表单的数据,你就会丢失它们。

    从其他控制器渲染动作。

    render 'controller/action'
    

    您保留所有定义的数据(参数和所有内容)。
    但是您需要再次执行其他控制器会执行的所有操作。

    避免重复代码行的一种解决方案是使用库方法定义视图中所需的每个变量,并在两个控制器中使用此方法。

    【讨论】:

      【解决方案2】:

      redirect_to 是这样做的首选方式。

      如果您只想使用当前操作的逻辑渲染其他操作的视图,您可以将视图作为渲染选项传递。

      render 'other_controller/action'
      

      【讨论】:

      • 但这会发送 HTTP 状态以进行重定向。这不是我要找的。​​span>
      猜你喜欢
      • 2015-09-07
      • 1970-01-01
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      • 2016-01-05
      • 1970-01-01
      • 2017-10-14
      相关资源
      最近更新 更多