我正在使用Simple Form,我有一些与我的模型无关的字段。我发现使用这个伪字段选项是一个很好的解决方案:
https://github.com/plataformatec/simple_form/wiki/Create-a-fake-input-that-does-NOT-read-attributes
我认为这比为我的字段添加attr_accessor
值更清晰,并且它适用于文本输入字段。我希望用Select Field完成同样的事情。
我找到了这个帖子,但我找不到其他的东西:
https://github.com/plataformatec/simple_form/issues/747
是否有人为假冒选择输入找到了类似的选项?谢谢!
答案 0 :(得分:2)
假设您将UI伪造选择用于UI目的(可能是修改表单字段以使用Javascript呈现用户的意思?)并且您不想处理控制器中的值,可以只使用select_tag
和任何字段名称,而不是simple_form
f.input
。该值将被发送到服务器,但它将在模型参数之外,因此您可以在控制器中忽略它。
如果我误解了你的问题,请澄清。
答案 1 :(得分:2)
如果您只是尝试获取name='whatever'
而不是name='model[whatever]'
,我发现最简单的方法是在input_html { name: 'whatever', id: 'whatever' }
哈希中指定名称属性,而不是默认{ {1}}。
否则你可以创建一个与model[attribute]
类似的fake_select_input.rb
,但显然会改用select_tag并执行fake_input.rb