2012-11-09 7 views
0

사용자 이름도 전자 메일로 원하지만 사용자로부터 두 번 값을 가져 오지 않으므로 숨겨진 필드로 유지하고 시도했습니다. 아래 그림과는 값한 필드에서 값을 가져오고 다른 필드에서 같은 값을 할당하는 경우

<div><%= f.label :email %><br /> 
    <%= f.text_field :email %></div> 

    <div><%= f.hidden_field :username :value => :email%></div> 

을하지 않는 그래서 내가 어떻게 이메일의 가치를 얻을 수 있으며, 사용자 이름 필드에 같은 값을 넣어. 도와주세요.

답변

2
... 당신은 오히려 모델이 뭔가를 넣을 수 그들이 일하는 것이 사용하기 전에 컨트롤러의 params[:user][:username] = params[:user][:email] 같은

뭔가 :

before_validation(:on => :create) do 
    self.username = self.email 
end 

또는 (또한 모델) :

def username 
    email 
end 

하지만 당신은 오히려 왜 똑같은 것에 두 가지 언급이 있는지 스스로에게 물어볼 것입니다. 문제가 지나치게 복잡해졌으며 왜 사용자 이름을 모두 잃어 버리지 않는 것입니까?

관련 문제