添加带有 simple_form 的复选框而不与模型关联?
如何使用 simple_form 添加复选框而不与模型关联? 我想创建一个复选框来处理一些 javascript 事件,但不知道? 也许我错过了文档中的某些内容? 不想使用类似的如下:
= simple_form_for(resource, as: resource_name, url: session_url(resource_name), wrapper: :inline) do |f|
.inputs
= f.input :email, required: false, autofocus: true
= f.input :password, required: false
= f.input :remember_me, as: :boolean if devise_mapping.rememberable?
= my_checkbox, 'some text'
How I can add checkbox with simple_form without association with model?
I want to create checkbox which will handle some javascript events, but don't know?
Maybe I miss something in documentation?
Want't to use similar like following:
= simple_form_for(resource, as: resource_name, url: session_url(resource_name), wrapper: :inline) do |f|
.inputs
= f.input :email, required: false, autofocus: true
= f.input :password, required: false
= f.input :remember_me, as: :boolean if devise_mapping.rememberable?
= my_checkbox, 'some text'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您可以向模型添加自定义属性:
然后使用此字段作为块:
尝试在其文档中查找“Wrapping Rails Form Helpers”https://github.com/plataformatec/simple_form
You can add a custom attribute to the model:
Then use this field as block:
Try to find "Wrapping Rails Form Helpers" in their documentation https://github.com/plataformatec/simple_form
你可以使用
You could use
huoxito 提出的命令不起作用(至少在 Rails 4 中不起作用)。据我所知,该错误是由 Rails 尝试查找
:custom_field
的默认值引起的,但由于该字段不存在,因此查找失败并引发异常。但是,如果您使用
:input_html
参数为字段指定默认值,则它会起作用,例如如下所示:The command proposed by huoxito does not work (at least not in Rails 4). As far as I figured out the error is caused by Rails trying to look up the default value for
:custom_field
, but because this field does not exists this lookup fails and an exception is thrown.However, it works if you specify a default value for the field using the
:input_html
parameter, e.g. like this:这个问题首先在谷歌上出现,没有合适的答案。
自 Simple Form 3.1.0.rc1 起,维基百科上就有了一种正确的方法: https://github.com/plataformatec/simple_form/wiki/Create-a-fake-input-that-does-NOT-read-attributes
对于这个特定问题,你必须将方法的第二行更改为:
对于 3.1.0 之前的版本.rc1 admgc 给出了一个解决方案,即添加缺少的方法
merge_wrapper_options
:https://stackoverflow.com/a/26331237/2055246
This question comes first on google with no appropriate answer.
Since Simple Form 3.1.0.rc1 there is a proper way of doing it explained on the wiki: https://github.com/plataformatec/simple_form/wiki/Create-a-fake-input-that-does-NOT-read-attributes
For this specific question you have to change the second line of the method to:
For versions prior 3.1.0.rc1 admgc gave a solution that is adding the missing method
merge_wrapper_options
:https://stackoverflow.com/a/26331237/2055246
将其添加到
app/inputs/atory_boolean_input.rb
中:然后在您的视图中使用它,例如:
ie 上述实现正确支持嵌套字段。我见过的其他解决方案没有。
注意:此示例是 HAML。
Add this to
app/inputs/arbitrary_boolean_input.rb
:then use it in your views like:
i.e. The above implementation supports nested fields correctly. Other solutions I've seen do not.
Note: This example is HAML.
这是另一种变体:
Here is another variation: