0

我有一组产品设置。对于每个设置,我想添加一对单选按钮“启用和禁用”来表示设置状态。用户可以单击按钮更改 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
4

1 回答 1

0

您在评论中提到您正在运行 1.2.x 版本的 rails。所以基于此: http ://apidock.com/rails/v1.2.0/ActionView/Helpers/FormTagHelper/radio_button_tag

<%= radio_button_tag("settings[#{setting.key_name}]", "enabled", setting_enabled) %>
<%= radio_button_tag("settings[#{setting.key_name}]", "disabled", !setting_enabled) %>
于 2013-01-12T13:54:24.210 回答