我正在尝试向其中一个 Spree 管理视图中已经存在的表单添加输入。这是覆盖文本(我剪掉了一些以显示为中心且嘈杂的杂乱无章):
new_html = "
<div id='neato_new_field'>
<p id='product_display_value'>
<label for='display_value'>Display Value</label>
<br>
<input type='text' name='product[display_value]' size='30' id='product_display_value' value=''>
</p>
</div>"
Deface::Override.new(:virtual_path => "spree/admin/products/_form",
:insert_after => "div.clearfix",
:text => new_html,
:name => "add_display_value")
我需要知道如何做的是在输入上设置“value”属性的值,以便在呈现此视图时获取该对象上当前的内容。
我尝试将 value='#{@product.display_value}' 放在那里,但它抱怨@product 为零。我什至可以使用这样的插值来获取 display_value 吗?这种污损是在控制器尝试渲染之前还是之后完成的?
我现在想知道如何解决这个问题。我是否必须从已经存在的 html 中删除产品 ID,使用它来加载产品,然后将那个值放在那里?我真的希望我错过了一些基本的东西,这使得解决这个问题变得微不足道:P 很多 Spree 定制都是这种情况——一开始不清楚如何做,但一旦我弄清楚了出来,很容易实现我的自定义......
谢谢,jd