2010-07-28 6 views
0

렌더링하지 나의 index.html.erb입니다.레일 액션이 여기에

그것은 어느 로그에없는 :

Processing PostsController#index (for 127.0.0.1 at 2010-07-27 20:54:28) [GET] 
Post Load (0.2ms) SELECT * FROM "posts" 
Rendering template within layouts/application 
Rendering posts/index 
Rendered posts/_post (8.4ms) 

또한, 난 그냥 <%= render :new %>로 교체하면, 나는 오류 얻을 :

undefined method `include?' for :new:Symbol 

을하지만 그것은 나를 암시 적으로 작업을 렌더링 할 수 있도록해야한다 레일즈 2.3.8.

누구든지이 중 하나를 설명 할 수 있으면 감사하게 생각합니다.

답변

1

보기 내에서만 부분을 렌더링해야합니다. 여러 뷰의 내용을 필요로하기 때문에, 당신은 부분 (예를 들어, _new.html.erb)에 new.html.erb의 내용을 변환 한 후

<%= render 'new' %> 
new.html.erb에서

뿐만 아니라 수 있습니다 index.html.erb. render : action => 'actionname'은 컨트롤러 내에서 다른 액션 템플릿을 렌더링하기위한 것입니다.

각 모델에 대해 _form.html.erb 부분을 작성하고 다른 곳에서 모델 인스턴스를 추가하거나 편집 할 수 있어야 할 때마다이를 사용하는 공통 관용구에 유의하십시오. 이 경우에도 유용 할 것입니다. 그런 다음 index, new 및 edit에서 부분 양식을 렌더링합니다.

0

생각해 보니, erb가이 두 블록을 한 줄로 처리 할 것으로 생각됩니다. 여러분이 아마 아는 바와 같이, 루비에서는 라인의 끝에 "unless"또는 "if"조건을 넣는 것은 매우 관용적입니다.

"끝내기"앞에 있지만 뒤에 < % 뒤에 줄 바꿈을 추가 할 수 있습니다.