7

strip 내 사용자 모델에 변수 Username의 공백을 넣으려고합니다.before_save, 문자열을 제거하십시오.

내가

before_save do 
    self.username.strip! 
end 

를 사용하고 있지만 작동하지 않는 것, 내가 뭔가를 놓친 거지?

+1

'self.username = self.username.strip!' –

+0

@Hitham S. AlQadheeb, 과제가 필요하지 않습니다. 이미'strip!'을 사용하고 있습니다. – Hardik

+0

오, 고마워. 고마워. –

답변

17

당신은 오히려 세터를 업데이트하는 대신 콜백와 모델 오염 것 : 당신은 단지 앞과 당신이 할 수있는 후행 공백 을 제거하려면, 내가 squish

+0

답변 해 주셔서 감사합니다. 스트립을 넘기는 게 왜 더 좋은지 설명해 주시겠습니까? –

+0

squish는 모든 어리석은 공백을 제거하고 스트립은 맨 앞과 뒤쪽을 제거합니다. – apneadiving

+0

소리가 멋지므로 value.to_s.strip => value.to_s.squish를 바꿉니 까? –

0

을 선호 Btw는

def username=(value) 
    self[:username] = value.to_s.strip 
end 

을 .strip을 사용하십시오!

하지만 당신이 말한대로 : 내 사용자 모델에서 변수 이름의 공백을 제거하기 위해 노력하고있어

.

난 당신이 모든 공간을 제거 할 사실은 생각해야 다음

.gsub(/\s+/, "")

편집 :

아, 네, 당신은 또한 사용할 수 있습니다 레일에 내장 된 방법을 squish()

thanx to 무호흡증 다이빙 상기시켜주기 위해

+0

http://apidock.com/rails/String/squish는 레일에 내장되어 있습니다. – apneadiving

관련 문제