【发布时间】: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