1

我在 Rails 上进行一项操作,但我希望从另一项操作中继续处理。我的代码如下所示:

  send(new_action)                #call the new_action method
  action_name = new_action        #change the controller.action_name
  render :action => new_action    #inform the view that we're in new_action

这行得通,但是 action_name——尽管它在 ActionController 实例中发生了变化——在从视图中检索时被重置为

controller.action_name 

有什么方法可以设置并使其粘住吗?

编辑:我找到了另一个不涉及此问题的解决方案,即此处。谢谢!

4

1 回答 1

5

你做错了!

ActionPack 内部的这种摆弄几乎肯定会迟早让你伤心。无法保证这些内部结构在不同版本之间不会发生根本性变化,很难维护(对于您自己和其他人),因为您完全忘记了它在做什么以及为什么,并且非常有可能引入细微的错误。

取而代之的是,将两个操作共有的代码放入一个公共方法中,例如控制器中的私有方法,模型中的更多逻辑,或者,如果需要,控制器继承链中更高的公共函数。

于 2009-01-29T08:27:10.347 回答