2013-07-22 3 views

ответ

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.

Теперь таблица ваших пользователей имеет столбец terms_accepted. Затем добавьте его как attr_accesible.

attr_accessible :terms_accepted. 

Теперь используйте это поле и поставьте галочку на этой странице.

<%= f.check_box :terms_accepted%> 
+1

В Rails 4 не более attr_accessible. Если вы хотите его использовать - добавьте gemfile в атрибут protected_attributes –

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

Эта проверка очень специфичны для веб-приложений, и это «признание» не должны быть записаны в любом месте в вашей базе данных (если вы не имеете поле для него, помощник будет просто создать виртуальный атрибут).

class User < ActiveRecord::Base 
    validates :terms_and_conditions, acceptance: true 
end 
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 

Я надеюсь, что работает!

Смежные вопросы