2010-04-12 4 views
0

내 응용 프로그램을 mongrel에서 mod_rails로 변경했을 때 이상한 오류가 발생했습니다.레일 : application.html.erb 레이아웃 파일 및 application_helper.rb 문제

내 앱은 사용자가 앱에있는 위치에 따라 2 열 레이아웃에서 3 열 레이아웃으로 변경됩니다. 내 응용 프로그램 레이아웃은 divs를 올바른 위치에두기위한 여러 도우미에 의존합니다. application_helper.rb에서

는 :

def left_column_layouts 
    if params[:controller] == "users" && params[:action] == "show" || 
     params[:controller] == "friendships" && params[:action] == "index" || 
     params[:controller] == "tags" && params[:action] == "index" 
     true 
    else 
     false 
    end 
end 

또한 어디에 세 열 레이아웃 유사한 논리를 가지고있다.

그런 다음 내 레이아웃 파일 : 나는 모드 레일로 변경 될 때까지

<% if left_column_layouts %> 
    <div class="colmask leftmenu"> 
    <div class="colleft"> 
    <%= yield %> 
    </div> 
    </div> 
<% elsif three_columns_with_blank_sides %> 
<div class="colmask threecol"> 
<div class="colmid"> 
<div class="colleft"> 
    <%= yield %> 
<div class="col2"> 
</div> 
<div class="col3"> 
</div> 
</div> 
</div> 
</div> 
<% else #Three column layout %> 
    <div class="colmask threecol"> 
    <div class="colmid"> 
    <div class="colleft"> 
<%= yield %> 
    </div> 
    </div> 
    </div> 
<% end %> 

이 잘 작동했다. 왜 모드 레일이 앱의이 부분을 단순히 작동시키지 않는지 상상할 수 없습니다.

흥미로운 참고 사항 : 내 사이트의 https 부분에 가서 레이아웃이 문제없이로드되고있었습니다. 내 서버 지원 담당자는 캐시를 지워야하지만 문제가 지속된다고 말했습니다.

도움이 될 것입니다.

+0

mod_rails에는 문제가되지 않습니다. 너 또 뭐 했니? – fig

+0

어디 보자 ... 나는 새로운 헤더 그림에 넣기 위해 약간의 레이아웃 파일을 수정했지만, 이것은 도우미가로드되지 않은 것과 관련이 있다고 상상할 수 없다. 보안 페이지에로드되고 일반 페이지에로드되지 않는다는 사실은 실제로 나를 자극합니다. –

+0

"작동하지 않는다"고 말하면 무엇을 의미합니까? 렌더링 된 것이 없습니까? 오류가 발생 했습니까? 렌더링 된 페이지의 소스를보고 여기에 게시하십시오. – bensie

답변

1

나는 이것이 오래된 게시물이지만, 다른 사람들이 그것을 볼 수 있도록하는 것을 알고 있습니다. 내가 원하는 것을 정확히 이해하면 문제가 귀하의 상태에서 사용 된 논리에 있다고 믿습니다.

컨트롤러 : 동작이 사용자 : 표시 또는 우정 : 색인 또는 태그 : 색인 인 경우 왼쪽 열을 표시하려면 논리 조건이 잘못되었습니다. 이를 교정하려면 괄호가 필요합니다.

예를 들어 사용자가 'B', 친구가 'C', 친구 관계의 색인이 'D', 태그가 'E'이고 태그 색인이 'F'라고 가정 해 봅시다.

코드는 A를 나타냅니다. & & B || C & & D || E & & F,하지만 당신이 원하는 것을 믿습니다 (A & & B) || (C & &D) || (E & &F). 왜냐하면 A & & B || C & & D || E & & F가 (A & & B)와 같지 않음 || (C & &D) || (E & & F)이 메서드는 잘못된 결과를 반환 할 수 있습니다. 더 명확히 말하면, A에서 E까지의 모든 매개 변수는 참이지만 F는 거짓이라고합시다. 귀하의 방법은 사실이라고 가정되는 거짓을 반환합니다. 그럴 수도 있습니다.

+0

안녕하세요. 도와 주셔서 감사합니다! 서버가 대대적 인 업그레이드를 수행했으며 이제는 문제가 사라졌습니다. 위어드. 다시는 발생하지 않도록 이러한 변경을 구현해야합니다. –

+0

당신은 오신 것을 환영합니다. – Taywin