我正试图用Simple Form For实现一个自定义的Fake Input(在本文中找到)。这是我的代码:
<%= simple_form_for :results, { url: admin_add_sites_path } do |f| %>
<%= f.input :no_merchandisers, as: :fake %>
<%= f.input :site_codes_to_add, as: :fake %>
<%= f.submit "Submit" %>
<% end %>
当我第一次实现输入时,我收到了一个错误:
No input found for fake
这个堆栈溢出问题的答案告诉我重新启动服务器。这暂时为我修复了上述问题。
但是,每当我编辑和保存一个文件时(这是在编辑控制器文件时发生的),错误就会再次出现,我必须重新启动服务器才能继续。其他人以前经历过这种情况吗?有解决办法吗?
对于这个问题,我经常使用一些解决方案(尽管我不使用Simple Form)。首先是使用value: nil
。所做的只是覆盖默认的value
方法,该方法通常会查找模型属性。它仍然与表单的其余部分一起提交。
<%= f.input :no_merchandisers, value: nil %>
第二种解决方案是使用"标记"输入,这取决于您的实际输入:
<%= text_field_tag "results[no_merchandisers]", value_variable %>
或者:
<%= check_box_tag "results[no_merchandisers]", value_variable, checked_variable %>
现在,这两种解决方案都没有修复as: :fake
问题,只是完全替换了它。我不熟悉SimpleForm,所以我不知道额外的代码是如何工作的。