【问题标题】:Rails 3: How to render an action from another controller's viewRails 3:如何从另一个控制器的视图呈现动作
【发布时间】:2011-04-29 12:02:59
【问题描述】:

我正在尝试从其他控制器的视图调用操作:

控制器Countries 有一个名为selectbox 的操作,它从所有国家/地区生成一个html 选择框作为部分。
控制器Customers 有一个名为new 的操作,它为所有客户属性生成一个html 表单。我想以这种形式插入来自Countries#selectbox 的选择框。

实现这一目标的正确方法是什么?

【问题讨论】:

    标签: ruby-on-rails controller action render


    【解决方案1】:

    你做错了。如果有一段代码要重用(例如 html 选择框生成),您应该将它放在帮助程序中和/或使用部分来呈现 html 选择框部分。

    请记住,这只是在代码有些复杂(例如,超过一两行)时才提供的好建议。这是我在谷歌搜索时发现的一篇文章,可能对您有所帮助:helper or partial

    【讨论】:

    • 感谢您的链接。我决定将我的代码留在部分中。但还有另一个问题:我想通过 AJAX 重用选择框,因此部分属于控制器“国家”。有没有办法从另一个控制器的视图中调用一个动作?
    • @silent 查看名为“cells”的 gem,或在 google 中查找“rails cells”
    【解决方案2】:

    对于您正在做的事情,将代码提取到辅助方法中是正确的方法。但是,如果您仍想使用其他人的 am 操作,这是您可以使用的官方 Rails 插件:

    https://github.com/rails/render_component

    【讨论】:

      猜你喜欢
      • 2012-06-04
      • 1970-01-01
      • 1970-01-01
      • 2019-09-11
      • 2015-06-17
      • 2011-08-28
      • 2018-12-12
      • 2017-02-03
      • 1970-01-01
      相关资源
      最近更新 更多