We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
레일즈 모델에는 attributes라는 메소드가 있습니다. 현재 모델 인스턴스에서 가지고 있는 컬럼과 그 값을 반환하는 역할을 합니다
attributes
irb(main):074:0> user = User.new => #<User id: nil, email: nil, created_at: nil, updated_at: nil, username: nil, phone_number: nil, major: nil, student_id: nil, sex: nil, home_phone_number: nil, emergency_phone_number: nil, habitat_id: nil, member_type: nil, generation_id: nil, birth: nil> irb(main):075:0> user.email = "[email protected]" => "[email protected]" irb(main):076:0> user.username = "test" => "test" irb(main):077:0> user.attributes => {"id"=>nil, "email"=>"[email protected]", "created_at"=>nil, "updated_at"=>nil, "username"=>"test", "phone_number"=>nil, "major"=>nil, "student_id"=>nil, "sex"=>nil, "home_phone_number"=>nil, "emergency_phone_number"=>nil, "habitat_id"=>nil, "member_type"=>nil, "generation_id"=>nil, "birth"=>nil}
또한 해시에는 keys라는 메소드와 values라는 메소드가 있습니다. 각각 해시의 키와 값을 반환합니다.
keys
values
irb(main):078:0> user.attributes.keys => ["id", "email", "created_at", "updated_at", "username", "phone_number", "major", "student_id", "sex", "home_phone_number", "emergency_phone_number", "habitat_id", "member_type", "generation_id", "birth"] irb(main):079:0> user.attributes.values => [nil, "[email protected]", nil, nil, "test", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil]
이를 활용하면 레일즈 코드를 좀 더 간결하게 고칠 수 있습니다. 가령 현재 사용자(User) 모델에 다음과 같은 코드가 있는데,
def strip! strip_to = [:username, :email, :major, :student_id, :sex, :home_phone_number, :emergency_phone_number, :habitat_id, :member_type, :birth ] strip_to.each{|column| self[column].strip! if self[column]} end
이를 다음과 같이 고칠 수 있습니다.
def strip! self.tap do attributes.values.each do |value| value.strip! if value end end end
이 코드는
strip!
다른 코드도 attributes와 keys/values를 활용해서 리펙토링 하면 좋겠습니다. ㅎㅎ
The text was updated successfully, but these errors were encountered:
유용하게 쓰일것같네요 👍
Sorry, something went wrong.
No branches or pull requests
레일즈 모델에는
attributes
라는 메소드가 있습니다.현재 모델 인스턴스에서 가지고 있는 컬럼과 그 값을 반환하는 역할을 합니다
또한 해시에는
keys
라는 메소드와values
라는 메소드가 있습니다.각각 해시의 키와 값을 반환합니다.
이를 활용하면 레일즈 코드를 좀 더 간결하게 고칠 수 있습니다.
가령 현재 사용자(User) 모델에 다음과 같은 코드가 있는데,
이를 다음과 같이 고칠 수 있습니다.
이 코드는
strip!
을 해줍니다.다른 코드도
attributes
와keys
/values
를 활용해서 리펙토링 하면 좋겠습니다. ㅎㅎThe text was updated successfully, but these errors were encountered: