我有一组产品设置。对于每个设置,我想添加一对单选按钮“启用和禁用”来表示设置状态。用户可以单击按钮更改 current_setting 表中的设置状态。我有两个产品 A 和 B,状态为与A相关的所有设置都是“启用”,B的所有状态都是“禁用”。我的问题是,当我刷新网页时,A和B的单选按钮是相同的。它们都被选中“禁用”。
我测试了以下功能: CurrentSetting.setting_enabled?和 DefaultSetting.default_enabled?。测试结果表明,这些函数返回都可以返回预期的结果,即与A相关的所有设置的启用状态为真(“启用”),对于B为假(“禁用”)。但是 A 的按钮被选中“禁用”。
刷新网页后,如何使单选按钮显示每个设置的当前启用状态?有人可以帮我一个忙吗?
视图中的 rhtml 是:
<%@settings.each do |setting|%>
<%setting_enabled = CurrentSetting.setting_enabled?(@product_id,setting.id)%>
<!-- Setting on -->
<%= radio_button_tag("settings[#{setting.key_name}]", "enabled", :checked=> setting_enabled) %>
<!-- Setting off -->
<%= radio_button_tag("settings[#{setting.key_name}]", "disabled", :checked=> !setting_enabled) %>
<%= "#{setting.display_name}" %>
<br/>
<%end%>
模型 current_setting.rb 中的函数是:
def self.setting_enabled? db_id, default_setting_id
current_setting = CurrentSetting.find(:first,
:conditions => ['db_id = ? and default_setting_id= ? ', db_id, default_setting_id ])
if current_setting==nil
return DefaultSetting.default_enabled?(default_setting_id) #return default enabled state for this setting
else
return current_setting.enabled
end
end