我使用按钮组作为单选按钮来捕获数据库中布尔字段的用户输入。我有一个布尔字段的婚礼模型: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 %>
答案 0 :(得分:1)
我应该建议你使用无线电输入但是隐藏圆圈(有些css会做到这一点)并在输入上添加引导类,这样你就可以看到按钮了。
答案 1 :(得分: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>