Ruby on rails 3 有问题:检查单选按钮-导轨
我很抱歉发布了关于这段代码的另一个问题,但我是rails的新手,这很痛苦。我的问题是,当DB中存在默认值时,我想选择第三个单选按钮。换句话说,我有三个按钮“真”、“假”和“要么”。如果没有选择任何内容,或者用户选择了“任一”按钮,我希望显示该选择。当前,如果用户选择“真”或“假”,则该选择将正确反映,并符合预期。只是选择的第三个选项在表单保存或再次打开时没有反映出来。这是我的密码:Ruby on rails 3 有问题:检查单选按钮-导轨,ruby-on-rails-3,forms,radio-button,default,radiobuttonlist,Ruby On Rails 3,Forms,Radio Button,Default,Radiobuttonlist,我很抱歉发布了关于这段代码的另一个问题,但我是rails的新手,这很痛苦。我的问题是,当DB中存在默认值时,我想选择第三个单选按钮。换句话说,我有三个按钮“真”、“假”和“要么”。如果没有选择任何内容,或者用户选择了“任一”按钮,我希望显示该选择。当前,如果用户选择“真”或“假”,则该选择将正确反映,并符合预期。只是选择的第三个选项在表单保存或再次打开时没有反映出来。这是我的密码: <div class="new-partner-form"> <%= form_for [:ad
<div class="new-partner-form">
<%= form_for [:admin, matching_profile.partner, matching_profile], :html => {:id => "edit_profile", :multipart => true} do |f| %>
<div class="rounded-block semi-wide clear">
<h4>Military Service</h4>
<%= f.radio_button :served_in_us_army, false %>
<%= label :served_in_us_army, 'NO', {:style => 'display:inline'} %>
<%= f.radio_button :served_in_us_army, true %>
<%= label :served_in_us_army, 'YES', {:style => 'display:inline'} %>
<%= f.radio_button :served_in_us_army, " ", { :checked => (:served_in_us_army.nil? or :served_in_us_army.blank? ? true : false) } %>
<%= label :served_in_us_army, 'Either', {:style => 'display:inline'} %>
<%= f.error_message_on :served_in_us_army %>
</div>
{:id=>edit_profile',:multipart=>true}do | f |%>
兵役
'显示:内联'}%>
'显示:内联'}%>
(:在美国陆军服役。无?或:在美国陆军服役。空白??对:错)}%>
'显示:内联'}%>
编辑:我应该注意到,我也尝试了:checked”选项,但没有花括号。还是不走运
不确定这是否是最佳解决方案,但以下是我解决问题的方法(我需要的是字段值而不是列名):
兵役
'显示:内联'}%>
'显示:内联'}%>
匹配的_profile.served _陆军_.nil?%%>
'显示:内联'}%>
我建议您不要在视图中执行此操作。这是商业逻辑
尝试在控制器中执行此操作,或者在模型中执行更好的操作
在这种情况下,您可能希望控制器用于新操作和(特别是)编辑操作,并可能为该信息创建一个实例变量。您可以从数据库中选择值、添加手动选项、使用if-then或其他任何选项来正确设置对象
最好的(总是)是尝试在模型级别解决这个问题。您可以使用模型方法查看现有的兵役价值,然后返回相关信息——即使是真/假值,因为布尔值也很好。只需确保在执行此操作之前正确准备属性(以匹配数据库)。保存我建议您不要在视图中执行此操作。这是商业逻辑 尝试在控制器中执行此操作,或者在模型中执行更好的操作 在这种情况下,您可能希望控制器用于新操作和(特别是)编辑操作,并可能为该信息创建一个实例变量。您可以从数据库中选择值、添加手动选项、使用if-then或其他任何选项来正确设置对象
最好的(总是)是尝试在模型级别解决这个问题。您可以使用模型方法查看现有的兵役价值,然后返回相关信息——即使是真/假值,因为布尔值也很好。只需确保在执行此操作之前正确准备属性(以匹配数据库)。save's我恐怕这里仍然有点模糊。假设我向模型中添加方法,该方法返回值:在陆军服役(我可能可以执行类似于
attr\u访问器:在陆军服役
)。我是否仍然需要在视图中进行检查,以查看值是什么,并根据值确定是否检查了按钮?我恐怕这里仍然有点模糊。假设我向模型中添加方法,该方法返回值:在陆军服役(我可能可以执行类似于attr\u访问器:在陆军服役
)。我是否仍然需要在视图中进行检查,以查看值是什么,并根据值确定是否选中按钮?
<div class="rounded-block semi-wide clear">
<h4>Military Service</h4>
<%= f.radio_button :served_in_us_army, false %>
<%= label :served_in_us_army, 'NO', {:style => 'display:inline'} %>
<%= f.radio_button :served_in_us_army, true %>
<%= label :served_in_us_army, 'YES', {:style => 'display:inline'} %>
<%= f.radio_button :served_in_us_army, " ", :checked => matching_profile.served_in_us_army.nil? %>
<%= label :served_in_us_army, "Either", {:style => 'display:inline'} %>
<%= f.error_message_on :served_in_us_army %>
</div>