我正在尝试使用以下方式在轨道中制作一个单选按钮:
<%= f.radio_button :category_id, "1" %>
问题是默认情况下已经检查过了,我不希望用户能够在没有明确单击一个表单的情况下提交表单(基本上我希望在页面加载时取消选中它)
问题是如果它出错了,并且页面重新加载,如果我添加:checked => false
似乎覆盖了用户在收到错误之前输入的内容,并且他们必须再次单击它。
谢谢!
答案 0 :(得分:0)
如果要关联已选中按钮的状态,则必须以某种方式保存该信息并将该信息返回到视图。 您可以手动执行此操作,或让radio_button按照apidock
中的说明处理该操作# Let's say that @post.category returns "rails":
radio_button("post", "category", "rails")
radio_button("post", "category", "java")
# => <input type="radio" id="post_category_rails" name="post[category]" value="rails" checked="checked" />
# <input type="radio" id="post_category_java" name="post[category]" value="java" />
答案 1 :(得分:0)
FormBuilder
助手(每次在块参数上调用输入法时使用的助手哦form_for
)将始终反映相应属性的当前值。所以:
<%= form_for @post do |f| %>
<%= f.radio_button :category_id, "1" %>
...只会在@post.category_id == "1"
听起来你想要做的就是在渲染视图之前确保模型的状态是正确的。