【问题标题】:How can radio button tag in rails be checked according to current value in tables如何根据表中的当前值检查rails中的单选按钮标签
【发布时间】:2013-01-12 21:54:24
【问题描述】:

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

【问题讨论】:

  • 你知道/使用 jquery 吗?你的问题很容易解释,正确,但我只知道使用 jquery 的解决方案
  • 对不起,我不知道 jquery。但是你能告诉我使用 jquery 的解决方案吗?也许我能得到一些想法。
  • 您现在所做的事情是否涉及任何 AJAX,即您是否有 remote=>true 对于任何链接、表单?
  • 另外,我注意到您使用的是 rhtml 扩展,相当旧,您使用的是什么版本的 rails?
  • 我正在扩展一个基于 Rails 1.2.3 的现有系统。我有 'current_setting/set_settings' %> 将在单击保存按钮后调用。

标签: ruby-on-rails model radio-button return-value checked


【解决方案1】:

您在 cmets 中提到您正在运行 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) %>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 2017-12-03
    • 1970-01-01
    相关资源
    最近更新 更多