render:在ApplicationController中定义时部分返回数组,但在ApplicationHelper中则返回字符串

时间:2011-09-25 18:09:41

标签: ruby-on-rails render helper

此方法:

  def admin_buttons
    render :partial => 'portable/admin/admin_buttons'
  end

在ApplicationControler中定义时返回此(不是html_safe)并使用helper_method创建一个帮助器:

[“我的部分输出”]

但它通常在ApplicationHelper中定义时返回预期的字符串。

我不明白。就rails 3.1

而言,这是新行为

1 个答案:

答案 0 :(得分:3)

简单地说,不要在助手中调用控制器的render。它只是不起作用

控制器中的

render和帮助器中的render不能互换使用。这在Rails 3.1中并不新鲜。

当您在控制器中调用render时,它最终会在视图上调用render,其结果将存储为response_body。响应体最终以Rack期望的方式返回,作为字符串数组(您看作输出)。

这些链接可能会更清楚地说明其工作原理:
- The controller's definition of render (metal)
- It's superclass method, where response_body is set (abstract_controller)

相关问题