즉, 학습 프로그래밍 [Ruby & Rails 복습편] [실례 변수]~ @ 있을 때, 없을 때~

3180 단어 RubyRails
여전히 라일스를 위해 고전 중인 모습이다.
이전에 쓴 코드는 한 줄 한 줄 나누어 복습한 것이기 때문에 다시 보면 이해가 매우 모호하여 전혀 설명할 수 없다...
행렬의 네온사인처럼 나도 프로그래밍 기술을 설치하고 싶다...
오늘은 로컬 변수와 실례 변수를 씁니다.

로컬 변수


프로그램의 일부분에만 사용할 수 있는 변수를 가리킨다.
Rails, 예를 들어 컨트롤러 파일에 기술된 경우 컨트롤러 파일에서만 사용할 수 있습니다.
tweets_controller.rb
  def destroy
    tweet = Tweet.find (params[:id])
    if tweet.user_id == current_user.id
      tweet.destroy
    end
  end

이런 느낌으로 변수명만 기술한다.

인스턴스 변수


클래스 내의 공통 속성으로서 실례에서 정의할 수 있는 변수.
예전에는 오븐 그거였어요.
인스턴스 변수는 다음과 같습니다.
tweets_controller.rb
  def edit
    @tweet = Tweet.find(params[:id])
  end
이런 느낌으로 머리에 @을 더해서 표시한다.

그럼 뭐가 달라요?


어쨌든, 나는 각양각색의 변수가 있다는 것을 알고 있지만, 여전히 잘 모르겠다.

"어? 같이 아닌가?"이 두 성질은 당연히 완전히 다르다.
(또는 성격이 같으면 일부러 다른 이름을 써도 좋을 게 없다.)
방금 로컬 변수는 유한한 곳에서만 사용할 수 있다고 썼습니다.
즉, 인스턴스 변수는 반대로 다른 파일에서도 사용됩니다.
실례 변수의 코드를 다시 참고하세요.
tweets_controller.rb
  def edit
    @tweet = Tweet.find(params[:id])
  end
이 기술은 Twitters입니다. - 네.controller.rb라는 파일에 기록됩니다.
여기서 컨트롤러의 동작을 정의한 것이다.
Rails의 프로세스 중 하나인 컨트롤러는 뷰에 표시되는 정보를 뷰에 전달합니다.
즉 실례 변수@tweet를 해당하는 보기 파일에 전달해야 한다.
이번 상황은view/twets/edit입니다.html.eb 파일에 실례 변수를 건네줍니다.
예를 들어 destroy 동작에서 내용을 확인하지 않고 삭제하면 로컬 변수를 사용합니다.
그러나 삭제 내용을 확인하는 화면을 표시하려면 실례 변수를 사용하십시오.
--
어때?
지난번에 Params에 대해 썼는데, 나는 이 변수에 대한 이해가 매우 가벼운 것 같다.
왜 이런 저압력으로 공을 쳐도 괜찮아...?그냥 하면 안 되나??
이런 불안을 떨쳐버릴 수 없어 오늘도 계속 전선을 쳐다보면서...계속해.

좋은 웹페이지 즐겨찾기