2012-06-26 39 views
1

我在我的Rails應用程序中有一個選項卡導航頁面,它在所有視圖中共享。裏面我有一個小文本區域,應該根據用戶所在的頁面進行更改。Rails根據控制器呈現不同的視圖

目前我加入一個變量來控制和使用它這樣做的渲染部分路徑,像這樣:

class Myapp::WebsitesController < MyappController 
    def set_up 
    @page = 'websites/left_text_info' 
    end 

,然後在我的部分:

<%= render :partial => @page %> 

該作品但它並不覺得是最好的「紅寶石」做事的方式。任何人都可以提出一個更好的方法來做這件事嗎?

感謝

回答

2

您可以直接在您的視圖中使用controller_name helper方法,並跳過控制器部分:

<%= render "#{controller_name}/left_text_info" %> 

或者,如果這種變化是textarea的內容,那麼也許是最好的唯一的事方法是定義一個只返回內容的幫助方法,因此不需要多個非常相似的部分文件。

module ApplicationHelper 
    def text_area_content 
    case controller_name 
    when "users" 
     "content for users" 
    when "articles" 
     "content for articles" 
    else 
     "other content" 
    end 
    end 
end 
+0

謝謝,這些都比向我以前做的那樣向控制器添加路徑更清潔。 –

相關問題