我正在使用Rails 4.我正在尝试向控制器发送一个隐藏字段,如果隐藏字段设置为true,那么我想删除一个属性。现在,我的表格看起来像:
<input name="store[_destroy]" type="hidden" value="false" />
<input type='text' name="store[name]">
我有一些jQuery,如果单击一个按钮,则将隐藏字段设置为true。所以基本上,如果有人点击“删除商店名称”按钮,我想发送值为true的隐藏字段,并删除商店[名称]以插入数据库。
我的控制器现在看起来像:
def create
@store = Store.new(store_params)
if params[:_destroy] == true
params.delete :name
end
respond_to do |format|
if @store.save
...
但我使用当前代码得到unknown attribute: _destroy
。
答案 0 :(得分:1)
点击&#34;删除商店名称&#34;我会使用jQuery来禁用输入。按钮:
f.input :name, id: :store_name
link_to 'Remove Store Name', '#', onclick: "$('form input#store_name').prop('disabled', !$('form input#store_name').prop('disabled'));return false;"
版本较长:
f.input :name, id: :store_name
link_to 'Remove Store Name', '#', onclick: 'handle_remove_store_name(); return false;'
# javascript
window.handle_remove_store_name = function() {
var current_disabled_state = $('form input#store_name').prop('disabled');
$('form input#store_name').prop('disabled', !current_disable_state);
}
禁用的输入不会包含在通过表单提交的参数中。