0

ボタン グループをラジオ ボタンとして使用して、データベースのブール フィールドのユーザー入力を取得しています。ブール値フィールド :rsvp を持つ結婚式のモデルがあります。以下のフォームはデータをキャプチャしているようです。ただし、ページを更新すると、ボタンはユーザーの選択で切り替えられなくなります。私の質問は、ページが更新された場合、またはユーザーがログアウトして再度ログインした場合でも、ユーザーの選択を保持するボタンを取得するにはどうすればよいですか?

モデル

 class User < ActiveRecord::Base
  has_one :wedding
 end

 class Wedding < ActiveRecord::Base
  belongs_to :user
 end

コントローラー

 class WeddingsController < ApplicationController

   def new
     @wedding = Wedding.new
   end

   def create
     @wedding = current_user.build_wedding(params[:wedding])
      if @wedding.save
       redirect_to root_path
     else
       render 'new'
     end
   end

 class StaticPagesController < ApplicationController
   def home
    @wedding = Wedding.new
   end

意見:

home.html.erb

  <%= form_for(@wedding, :remote => true) do |f| %>
     <div class="btn-group-wrap">
          <div class="btn-group" data-toggle="buttons-radio">
             <%= f.button 'Yes', :class => "btn btn-large btn", :value => "1", :name => "wedding[rsvp]" %>
              <%= f.button 'No', :class => "btn btn-large btn", :value => "0", :name => "wedding[rsvp]" %>
          </div>
     </div>
  <% end %>
4

2 に答える 2

1

ラジオ入力を使用することをお勧めしますが、円を非表示にし (いくつかの CSS でうまくいきます)、入力にブートストラップのクラスを追加して、ボタンが見えるようにすることをお勧めします。

この他の投稿をチェックしてください:ラジオボタンをトグルボタンのように見せる方法

于 2012-07-26T06:15:42.860 に答える
0

これが私がそれをやった方法です(Javascriptを使用)。それが最善の方法かどうかはわかりません。各ボタンに ID タグを追加し、JavaScript とデータベースの値に依存する条件を使用してそのボタンを切り替えました。

 <div class="btn-group" data-toggle="buttons-radio">         
        <%= f.button :rsvp, :id => "rsvp_true", :class => "btn btn-large btn", :value => "1", :name => "wedding[rsvp]" %>
        <%= f.button :rsvp, :id => "rsvp_false", :class => "btn btn-large btn", :value => "0", :name => "wedding[rsvp]" %>      
 </div>

 <script>
   $(document).ready(function() {
  <% if current_user.wedding.rsvp == true %>
    $('#rsvp_true').button('toggle');
  <% else %>
    $('#rsvp_false').button('toggle');
  <% end %>
   });
 </script>
于 2012-07-26T13:41:46.473 に答える