此方法:
def admin_buttons
render :partial => 'portable/admin/admin_buttons'
end
在ApplicationControler中定义时返回此(不是html_safe)并使用helper_method创建一个帮助器:
[“我的部分输出”]
但它通常在ApplicationHelper中定义时返回预期的字符串。
我不明白。就rails 3.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)