我正在使用rails的“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'
答案 0 :(得分:1)
你没有在你的问题中提供足够的信息,只提供两行回溯,没有视图片段可以工作,或者部分没有。这意味着任何回答你的尝试都必须主要基于猜测。也就是说,就地编辑助手只是一个像其他任何人一样的辅助方法,没什么特别的。您可以从任何视图组件中调用它。很可能控制器或实际上父视图包含该视图的方式不是它失败的原因。
辅助方法抱怨nil
值。这意味着您的部分最有可能是调用in_place_editor_field
并传递未在部分中定义的值。与在in_place_editor_field
调用工作的视图中使用的变量相比,检查以确保它没有使用未定义的局部变量;检查以确保它不要求不同的实例变量。很可能你会发现有效的视图使用一个变量名,而你尝试渲染的部分则使用另一个。
render :partial => ...
机制支持将值显式传递给partial的不同方法;您可以选择使用这些来澄清您的代码。请参阅Rails API中渲染文档的“渲染部分”部分的:locals
和:object
选项:
答案 1 :(得分:0)
我正在开发一个位于rails 2.3.8的维护项目。这个问题占用了我很多时间
在视图中,将视图更改为具有实例变量:
@batch = batch
in_place_editor_field :batch, 'priority'