在代码中看到以下行时:
<%= render :partial => 'ingredients/form',
:locals => {:form => recipe_form} %>
我想知道实际发生了什么。
我注意到
render
是RenderingHelper
. 我如何知道在写作时可以使用哪个对象?我怎样才能RenderingHelper
像在Java(即RenderingHelper.render
)中那样使用它而不使用前缀。我是否在表单视图中继承了它?由于我知道Java和C#,所以我在代码中搜索
ingredients/form
并找不到它。我猜这是配置规则约定的一部分。它是什么?它在哪里定义?关于
:locals => {:form => recipe_form}
线路,是发送到的参数render
吗?是双重任务吗?=>
操作员在这里实际上做了什么?如果它是一个参数,从
render
签名中很难理解:返回由选项哈希指定的渲染结果。主要选项是:
:partial
- 见ActionView::PartialRenderer
。:file
- 渲染一个显式模板文件(这曾经是旧的默认值),添加:locals
以传递那些。:inline
- 呈现一个内联模板,类似于它在控制器中的完成方式。:text
- 渲染传入的文本。