1

利用規約のチェックボックスが必要な登録フォームがあります。最初の足場でその列を追加するのを忘れていました。問題の解決を手伝ってください。

4

3 に答える 3

2

そのために、新しい移行を追加して、新しい列をブール値フィールドとして users テーブルに追加できます。 http://guides.rubyonrails.org/migrations.html

rails g migration AddTermsAcceptedToUsers

フォルダーに移行ファイルが作成されdb/migrateます。ここで、コードを追加する必要があります。

class AddTermsAcceptedToUsers < ActiveRecord::Migration
  def change
    add_column :users, :terms_accepted, :boolean, :default => false
  end
end

次に、実行しますrake db:migrate

これで、users テーブルの列が になりましterms_acceptedた。次に、として追加しattr_accesibleます。

attr_accessible :terms_accepted.

このフィールドを使用して、登録ページのチェックボックスとして表示します。

<%= f.check_box :terms_accepted%>
于 2013-07-22T05:51:25.677 に答える
1

モデルの利用規約フィールドの属性アクセサーを作成できます。例えば

class User < ActiveRecod::Base
attr_accessor :terms_and_conditions
end

そして形で

<%=form_for(@user) do |f|%>
<%=f.check_box :terms_and_conditions %>
<% end %>

または


アクティブレコードの「承認」方法を利用できます。http://guides.rubyonrails.org/active_record_validations.htmlで方法を確認してください。

この検証は Web アプリケーションに非常に固有のものであり、この「承認」はデータベースのどこにも記録する必要はありません (そのためのフィールドがない場合、ヘルパーは単に仮想属性を作成します)。

class User < ActiveRecord::Base
  validates :terms_and_conditions, acceptance: true
end
于 2013-07-22T05:51:44.427 に答える
0

Bachans の回答を追加/更新するには、Rails 4 で次のようにします。

# User Controller
  private
    def user_params
      params.require(:user).permit(:name, :email, :terms_accepted)
    end

それ以外の

# User model
attr_accessible :terms_accepted

うまくいくことを願っています!

于 2013-07-22T07:41:45.317 に答える