즉, 프로그래밍[Ruby&Rails 복습편]을 배웁니다~ 계속/오류를 해결해 보세요!

4465 단어 RubyRails
새 연호 발표 후 시대 변화를 느낀 헤이세이가 태어난 30대 안팎도 마찬가지다.
어린 시절 머릿속에 떠오르는 30대 모습과는 거리가 멀어 세월의 잔혹함을 통감한다...
저도 디올처럼 멈추고 싶어요.
이런 일을 원망하면서 오늘도 잘못된 문제가 되풀이되도록 노력하고 있습니다.
지난번과 마찬가지로 이번에도 모델과 컨트롤러에 대한 오류 문제입니다.

오류가 발생하면 명탐정도 출동한다!


우선 실제 잘못된 화면을 봅시다.↓

우선 현장 검증이다.
/로그인한 상태에서
• 일람페이지에서 상세페이지를 클릭할 때
에서 이벤트(오류)가 발생했습니다.
자, 명탐정도라고 등장했다.

즉, 두 번째 줄의'Did youmean 완결편='댓글과
적문자 부분의 기술을 주의해라.
명탐정의 추리도 마찬가지다.
"이 오류문, 34행의 기술에서 나오는'comments'가'commeent'의 오류인가요?"
"그러니까 어떤 기술에는'commeent'라는 이름의 기술이...!"
여기서 말하는'어디의 파일'은 도대체 어디입니까?
빨간색 부분의 기술은 'show 동작에서 Twitter와comments를 표시합니다.' 라는 지시입니다.
이 트위터와comments는 트위터에 대한 많은 논평과 일대다의 관계다.
연관이 이뤄질 가능성이 높다는 것이다.
즉, 이 모델 폴더 산하의 기술이 의심스럽다...!
컨트롤러의 기술과 모형의 기술을 비교해 봅시다.
controller.rb

   def show
    @tweet = Tweet.find(params[:id])
    @comments = @tweet.comments.includes(:user)
   end
model.rb
_1  class Tweet < ApplicationRecord
_2   belongs_to :user
_3   has_many :comment
_4 end
③와 ③자세히 보세요.
③_3,hasmany:commeent가 됩니다.
이 부분의 기술은has이다many:comments가 정답!
명탐정도 잘못을 완전히 해결했어!

해설과 요점


이번 요점은 컨트롤러 파일의 변수 정의가 어디에 있습니까?그렇습니다.
저번 보도에도 모델과 연관성이 적혀 있으니 참고하세요.)
컨트롤러 변수를 정의하는 것은 모델입니다.
model.rb
_1  class Tweet < ApplicationRecord
_2   belongs_to :user
_3   has_many :comments
_4 end
사실 아까 질문은, ③3의 "comments"부분을 "commeent"로 유지하고 컨트롤러 파일의 ③
  @comments = @tweet.comments.includes(:user)
잘못을 해결할 수도 있다.
왜냐하면, 파일 사이의 이름이 일치하면 프로그램을 시작할 수 있기 때문이다.
하지만 수업 중에'has many:comments'를 소개하는 것이 있는데 저쪽에서 쓰는 것이 가장 좋다.
왜 그랬을까?
사실 이것은 영어 표기의 정확성뿐만 아니라 ③의 기술은 여러 개의 트위터 요소를 가진 배열(=Twitters)임을 나타낸다.
예를 들어 다른 사람들이 코드를 볼 때 내용을 혼란스럽지 않게 이해할 수 있다는 기술을 통해 알 수 있다.

--
어때요?
잘못된 문제에 조금 익숙해졌는지, 아니면 프로그램 설계 능력이 각성되고 있는지, 점점 이해가 간다!
벚꽃이 피는 동시에 나의 능력도 꽃이 핀다...그 공부는 계속되고 있다.

좋은 웹페이지 즐겨찾기