0

製品の設定のグループがあります。設定ごとに、設定ステータスを表す「有効」と「無効」のラジオボタンのペアを追加します。ユーザーはボタンをクリックして、current_settingテーブルの設定のステータスを変更できます。2つの製品AとBがあります。 Aに関連するすべての設定が「有効」で、Bのすべてのステータスが「無効」です。私の問題は、Webページを更新するときに、AとBのチェックされたラジオボタンが同じであるということです。これらはすべて「無効」でチェックされます。

次の関数をテストしました:CurrentSetting.setting_enabled?およびDefaultSetting.default_enabled?。テスト結果は、これらの関数が期待される結果を返す可能性があることを示しています。つまり、Bが偽(「無効」)の場合、Aに関連するすべての設定の有効ステータスが真(「有効」)です。ただし、Aのボタンは「無効」でチェックされています。

Webページを更新した後、ラジオボタンに各設定の現在の有効なステータスを表示させるにはどうすればよいですか?誰かが私にお願いできますか?

ビューの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 に答える