## 루비 온 레일즈 프라이빗 메소드 사용하기(How to use private method in Ruby on Rails)
루비 온 레일즈를 사용하다보면 private method 를 정의해서 사용할 때가 있다. 사용 시 주의사항에 대해서 알아보자. 아래와 같은 코드가 있다고 가정한다.
```ruby
class Dog
def bark
puts "멍멍"
end
private
def sounds_of_mind
puts "밥 주세요"
end
end
```
jindo 라는 instance 객체를 만든 뒤 bark 메소드를 사용하면 아래와 같이 나타난다.
```ruby
jindo = Dog.new
jindo.bark
멍멍
=> nil
```
아래와 같이 sounds_of_mind 메소드를 사용하면 아래와 같이 나타난다.
```ruby
jindo = Dog.new
jindo.sounds_of_mind
NoMethodError (private method `sounds_of_mind' called for #Dog:..>)
```
즉, private method는 인스턴스에서 바로 호출해 사용할 수 없는 메소드인 것이다. 그러면 어떻게 사용해야하나? 바로 public method를 이용해 사용할 수 있다. 먼저 아래처럼 코드를 정의한다.
```ruby
class Dog
def bark
puts "멍멍"
sounds_of_mind
end
private
def sounds_of_mind
puts "밥 주세요"
end
end
```
그 다음 아래와 같이 bark 를 호출하면 private method 인 `sounds_of_mind`가 호출되는 것을 볼 수 있다.
```ruby
jindo = Dog.new
jindo.bark
멍멍
밥주세요
=> nil
```
댓글
댓글 쓰기