我正在Rails3和Formtastic中构建一个表单。 我有以下字段:
<%= f.input :housing, :as => :radio, :collection => {"Awesome" => "one", "Great" => "two", "Nice" => "three"} %>
生成与以下内容类似的HTML:
<input id="post_one" name="post" type="radio" value="one" />Awesome</label>
<input id="post_two" name="post" type="radio" value="two" />Great</label>
<input id="post_three" name="post" type="radio" value="three" /> Nice</label>
这项工作完美无缺!
现在,我想知道如何传递一个将“Great”标记为默认(选定)值的选项。我尝试了以下操作,但我无法让它工作。
<%= f.input :housing, :as => :radio, :collection => {"Awesome" => "one", "Great" => "two", "Nice" => "three"}, :default => "one" %>
我也试过传递:selected
和:checked
而不是:default
,但唉,它不起作用。
有人知道这样做的方法吗?
谢谢!
编辑: Aditya提出了一个非常好的观点。有些搜索产生了this helpful tip。
答案 0 :(得分:7)
在特定的无线电输入选项上设置HTML选项,并在阵列中为第3个元素设置集合成员,如下所示:
<%= f.input :author, :as => :radio, :collection => [["Test", 'test'], ["Try", "try", {:disabled => true}]]
答案 1 :(得分:6)
您是否尝试过将模型的:housing属性值设置为默认值?您可以在启动表单之前或在控制器中执行此操作,或者最好的方法是在模型初始化中执行此操作?查看可能不是默认IMHO的最佳位置。
答案 2 :(得分:6)
在视图中不再有选项可以执行此操作,正确的方法是默认使用正确的值初始化模型,或者将模型置于控制器中的状态,如Aditya所述。