0

Ruby on Rails 3.2を使用して、チェックボックスに問題があります。チェックボックスの値は通常データベースに保存されますが、ページを更新するか、フォームの送信ボタンをクリックすると、チェックボックスがオンのままにならず、ここで何が欠けているのかわかりません。更新または送信するたびに、チェックが外されます。よろしくお願いします。チェックボックスhas_available_spaceは、ブールデータベース値です。

データベース(チェックボックスの値)

    create_table :user_location do |t|
      t.boolean :has_available_space
    end  

ルート

    namespace :users do
       match 'update_location' => 'location#update', :via => [:post]
    end

モデルユーザー

    has_one :user_location

モデルユーザーの場所

    belongs_to :user

コントローラ

    def update 
     @user = User.find(params[:id])
     if @user.user_location.nil?
         @user.user_location = UserLocation.new
     end
     @user.user_location.has_available_space = params[:checkbox_has_available_space]
     @user.save!
     @user.user_location.save!
     redirect_to '/users/location'
    end

意見

    <form id = 'location_form' action="/users/update_location" method="post">
       <input type="hidden" name="id" value="<%= @user.id %>" />
       <input id = 'has_available_space' type="checkbox" name="checkbox_has_available_space" value = '<%= @user.user_location.has_available_space %>' >I have available space
    </form> 
4

1 に答える 1

0

チェックボックス要素に checked 属性を追加する必要があります。

`<input type="checkbox" checked />`
于 2013-02-28T22:39:27.883 に答える