0

我正在尝试使用以下方法在rails中制作一个单选按钮:

<%= f.radio_button :category_id, "1" %>

问题是它默认被选中,我不希望用户能够提交表单而不先明确点击一个(基本上我希望在页面加载时取消选中它)

问题是如果它出错并且页面重新加载,如果我添加:checked => false它似乎会覆盖用户在收到错误之前输入的内容,并且他们必须再次单击它。

谢谢!

4

2 回答 2

0

FormBuilder助手(每次调用 block 参数 oh a 的输入法时都会使用form_for)将始终反映相应属性的当前值。所以:

<%= form_for @post do |f| %>
  <%= f.radio_button :category_id, "1" %>

…仅在以下情况下才会被检查@post.category_id == "1"

听起来您想要做的是在渲染视图之前确保模型的状态是正确的。

于 2012-08-01T07:58:09.430 回答
-1

如果您想了解选中按钮的状态,您必须以某种方式保存它并将该信息返回到视图中。您可以手动执行此操作,也可以按照 apidock 中的说明让 radio_button处理

# 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" />
于 2012-08-01T06:34:36.303 回答