我正在使用“ in_place_editing”插件进行导轨来渲染带有现场编辑的表单。只要由Rails选择默认模板(在控制器内部调用'Render'方法),事物正常工作,但是当我尝试使用“ Render:partial =>'partial_name''进行部分渲染时,它们会分解。这是一个已知的问题(in_place_edit不适用于局部吗?)还是我错过了一些东西?在渲染部分时,我会遇到以下错误:

Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id
.../vendor/plugins/in_place_editing/lib/in_place_macros_helper.rb:74:in `in_place_editor_field'
有帮助吗?

解决方案

您不会在问题中提供足够的信息,只提供两行回溯,而没有可行的视图片段,或者没有片段。这意味着任何回答的尝试都必须主要基于猜测。也就是说,现场编辑助手只是其他任何人,没有什么特别的方法。您可以从几乎任何视图组件中调用它。控制器包含该视图的方式,或者确实是父级视图,这并不是它失败的原因。

助手方法抱怨 nil 价值。这意味着您的部分很可能是在调用 in_place_editor_field 并传递部分未定义的IT值。检查以确保它不使用未定义的局部变量,与视图中使用的变量相比 in_place_editor_field 通话作品;检查以确保它也不要求使用不同的实例变量。很可能您会发现工作的视图是使用一个变量名称,而您尝试渲染的部分是使用另一个变量名称。

render :partial => ... 机制支持不同的方式将价值传递给部分;您可以选择使用这些来澄清您的代码。看到 :locals:object Rails API中渲染文档的“渲染部分”部分的选项:

其他提示

我正在制作一个位于Rails 2.3.8的维护项目。这个问题吃了很多时间

在视图中,将视图更改为具有实例变量:

@batch = batch 

in_place_editor_field  :batch, 'priority'
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top