2014-08-12 2 views
2

내 의견의 범위를 좁힐 수있는 방법이 궁금합니다. 나는 조직에 따라 커스텀 테마를 갖고 싶다. 쇼/인덱스 액션에서 직접 렌더링을 사용할 수는 있지만 작동한다.하지만 애플리케이션에서 많은 액션을 오버라이드해야한다. 내가 컨트롤러 수준에서 그것을 할 선호하고 prepend_view_path 함께 일을했지만 그것은 정의되지 않은 변수를 제외하지 않았다.멀티 임차 앱의 레일 오버라이드/범위 지정보기

class EditionsController < ApplicationController 
    helper_method :current_organization 
    prepend_view_path "app/views/#{current_organization.slug}/editions" #doesn't work 

    def show 
    @edition = Edition.find(params[:edition_id]) 
    @page = @edition.pages.first 
    render template: "#{current_organization.slug}/editions/show" #works 
    end 

아이디어가 있으십니까?

는 또한 시도 : (동일한 오류와)

append_view_path(File.join(Rails.root, "app/views/#{current_organization.slug}")) 

답변

0

시도는 방법이 추가 된 것을 확인 prepend_view_path

prepend_view_path "app/views/#{current_organization.slug}" 

editions을 제거 할 수 있습니다. 이 before_filter

2

사용자 정의 테마를 추가하지 않을 경우 조직

확실히

이 더 의미가 각 회사에 대한 완전히 다른 뷰 세트가 아닌 사용자 정의 layouts & CSS을 정의하기 위해 만들 것에 따라?

-

나는 개인적으로 이런 짓을 했을까 :이 나에게 주제에 따라, 다른 페이지 스타일을 할 수있는 기능을 제공합니다

#app/layouts/application.html.erb 
<%= stylesheet_link_tag "application", controller_name ... %> 

. 분명히 당신이 당신의 컨트롤러 등

모듈화 수있는 방법을 보여줍니다 당신이 원하는,하지만 희망에 수축 -

서로 다른 "테마"를 만들고 싶었 경우를 (IE는 세입자에 따라 완전히 다른 뷰 구조를 갖는) here 설명 된대로, 당신의 prepend_view_path 도우미를 사용하는 것이 좋습니다 :

#app/controllers/application_controller.rb 
Class ApplicationController < ActionController::Base 
    prepend_view_path("views/#{current_organization.slug}") 
end 
+2

거의 내가 Organization.first.slug를 넣어 경우 undefined''로 current_organization 도우미 방법 오류 아웃, 대신 잘 작동한다는 점을 제외하고. 그러나 prepend가 current_organization 도우미 이전에로드되고있는 것처럼 보입니다. – ere