2013-07-22 2 views
1

나는 가입 서비스를 위해 체크 박스가 필요한 가입 양식을 가지고 있습니다. 초기 비계 동안 그 칼럼을 추가하는 것을 잊어 버렸습니다. 나는 후에 무엇을하지 않습니다. 제발 내가 문제를 해결하도록 도와주세요.가입 양식에 체크 박스 추가하기

답변

2

새 마이그레이션을 추가하여 부울 필드로 새 열을 사용자 테이블에 추가 할 수 있습니다. 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

레일즈 4에는 더 이상 attr_accessible이 없습니다. 그것을 사용하려면 - Gemfile에 protected_attributes gem을 추가하십시오. –

1

모델의 용어 및 조건 필드에 대한 속성 acessor를 작성할 수 있습니다.

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

또는


예를

class User < ActiveRecod::Base 
attr_accessor :terms_and_conditions 
end 

및 형태 당신은 액티브 레코드의 "수용"방법의 도움이 소요될 수 있습니다. 이 검증은 웹 애플리케이션에 매우 특정 http://guides.rubyonrails.org/active_record_validations.html

에서 방법을 확인하고 당신이 그것을위한 필드가없는 경우이 '수용'은 (데이터베이스에 어디서든 기록 할 필요가 없습니다 바랍니다, 도우미는 것이다 가상 속성 만들기).

class User < ActiveRecord::Base 
    validates :terms_and_conditions, acceptance: true 
end 
0

당신이 할 거라고 레일 4, Bachans '대답에/업데이트를 추가하려면

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

대신

# User model 
attr_accessible :terms_accepted 

의 내가 작품 것을 희망!

관련 문제