2012-07-01 3 views
3

RoR을 처음 사용하기 때문에이 주제에 대해 약간 혼란 스럽습니다. 컨트롤러의 변수 범위는 해당 뷰에서만 액세스 할 수 있습니까?레일 애플리케이션의 다른 뷰에서 모델 데이터에 액세스하는 방법

예를 들어 게시물 scaffold (blog_text 및 title)를 생성했다고합시다. 또한 정적이라는 컨트롤러를 페이지보기/컨트롤러 리소스와 함께 생성했습니다. 내 페이지 뷰에서 모든 게시물에 액세스/인쇄 할 수있는 방법이 있습니까? 정적 # home 함수에서 뭔가를해야합니까? 나는 Post.all가 정확하지 않습니까?

답변

3

컨트롤러는 해당보기에 연결됩니다. 그러나보기에서 변수를 사용할 수있게하려면 인스턴스 변수 (앞에 '@'가있는 변수, 예 : @variable)를 사용해야합니다. 또한 db에서 데이터를 요청할 때 어떤 모델/뷰/컨트롤러를 사용하든 상관 없습니다. 그래서 귀하의 질문에 대한 응답으로, 그래 당신은 어떤 컨트롤러

@posts = Post.all 

같은 것을 할 수있는 다음 뷰에 게시물을 액세스 할 수 있습니다. 이것은 꽤 기본적인 것들입니다, 당신은 guide 좀 더 공부해야합니다.

+0

나는이 늦은 시간에 바보 같은 실수를 저질렀다. 사과한다. 이것은 RoR을 시험해 보는 나의 첫 번째 시간이다. 그리고 나는 그것이 나의 연습 블로그의 홈페이지를 찾을 수 없다는 오류를 계속 지었다. 나는 멍청하지 않았다. db : migrate ... 나는 멍청이처럼 느껴진다. 사과. – thunderousNinja

+1

@unknown 걱정 없음 :) – Steve

+0

안녕하세요. steve. 저장된 데이터베이스의 데이터 만 표시해야하는 경우에 유용합니다. 하지만 회원, 대출 및 영수증과 같은 세 가지 모델을 만들었습니다. 또한 복구라는 추가 모델 (세 개의 테이블 모두에서 데이터를 읽고 날짜를 처리하기 위해). 데이터 처리 후 복구 모델에는 다음 달 회원들이 지불해야하는 대출 금액이 포함됩니다. 이제이 정보를 어떻게 보여줄 수 있습니까? 먼저 새로운 정보를 복구 DB에 저장해야합니까? 그렇다면 어떻게 모델로부터 db에 데이터를 삽입 할 수 있습니까? 단순히 model.create를 호출하여? – learner

관련 문제