1

我正在使用 Rails 的“in_place_editing”插件来呈现具有就地编辑的表单。只要 Rails 选择了默认模板(在控制器内部没有调用“渲染”方法),事情就可以正常工作,但是当我尝试使用“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'
4

2 回答 2

1

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

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

render :partial => ...机制支持将值显式传递给部分的不同方式;您可以选择使用这些来阐明您的代码。请参阅Rails API 中渲染文档的“渲染部分”部分的:locals和选项,网址为::object

于 2010-02-24T12:13:53.867 回答
0

我正在从事 Rails 2.3.8 中的维护项目。这个问题占用了我很多时间

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

@batch = batch 

in_place_editor_field  :batch, 'priority'
于 2015-01-08T11:52:35.177 回答