2012-12-28 4 views
1

내 장치 사용자에게 두 개의 필드를 추가했습니다. 나는이 같은 마이그레이션 파일에 추가하여 이런 짓을 :devise에서 새 필드를 수정하는 방법

t.datetime :access_bought_at, :default => DateTime.civil(0, 0, 0, 0, 0, 0, 0) 
t.string :access_type, :default => "none" 

다음은 사용자 모델에서 이러한 속성을 액세스 할 수 있도록 :

attr_accessible :email, :password, :password_confirmation, :remember_me, :access_type, :access_bought_at 

그런 다음 마이그레이션 (: 마이그레이션 레이크 dB)을했다.

하지만이 필드에 액세스하여 수정하는 데 문제가 있습니다. 나는 레일스에 익숙하지 않고 대답이 꽤 간단하다는 것을 확신하지만, 나는 그 필드에 접근하고 수정하는 방법을 찾지 못한다. 이것이 내가하려는 일이다. 특정 컨트롤러에서 나는 그 필드를 수정하려면, 내가하고 있어요 :

current_user::access_type = "forever" 
current_user::access_bought_at = Date.current() 

하지만를 한 후, 나는

puts current_user::email 
puts current_user::access_type 
puts current_user::access_bought_at 

을 할 경우에만 이메일 GET의 인쇄. 내가 단계를 놓치고있어 데이터베이스를 업데이트하지 않거나 그냥 잘못하고있는 것 같아요. 여기에 (update a table which in not devise model on sign up using devise?) 내가 모델에 def를 넣어야한다고 읽었습니다. def 어떻게? 모델을 변경 한 후에는 모델을 수정하는 방법에 대한 지침을 제공해야하므로 해당 작업을 수행하는 방법을 추가하는 것이 옳은 것처럼 보이지만 그 방법은 어떻게해야합니까?

답변

1

유증 사용자 모델은 여전히 ​​다른 모델처럼 액티브 API를

current_user.access_type = "forever" 
current_user.access_bought_at = Date.current() 
current_user.save 

puts current_user.email 
puts current_user.access_type 
puts current_user.access_bought_at 
관련 문제