2012-07-11 60 views
1
  • 紅寶石1.9.2p290
  • 軌3.1.1

如何SLIM模板創建控制器html元素?Rails中的SLIM模板:如何從實例變量呈現html元素?

我將解釋:

在我的看法,我想通過一些條件,以改變「H1」 html標記。

但我想把邏輯放在控制器內。

case params[:controller] when "recipes", "chefs" 
    case params[:action] when "show", "index" 
     @h_number = "h2" 
    else 
     @h_number ="h1" 
    end 
    else 
    @h_number ="h1" 
end 

在我SLIM的看法,我想這樣的事情:

= @h_number#logo 
    = link_to image_tag("image.png"), root_path 

導致:

<h1 id="logo"><a href="/"><img src="image.png"></a></h2> 

<h2 id="logo"><a href="/"><img src="image.png"></a></h2> 

這可能嗎?

我清楚嗎?對不起我的英語。

回答

3

我非常懷疑這是可能的。但你總是可以創建一個輔助方法來做到這一點

在您的應用助手文件,

module ApplicationHelper 
    def logo 
     num = case params[:controller] when "recipes", "chefs" 
      case params[:action] when "show", "index" then 2 end 
     end || 1 

     "<h#{num}>" + link_to(image_tag("image.png"), root_path) + "</h#{num}>" 
    end 
end 

在模板

body 
    header 
    == logo 

而且你的控制器不需要任何東西。

+0

謝謝!我是新手!你的回答對我來說是完美的。 – maiconsanson 2012-07-11 22:36:35

+1

這是一條古老的線索,但我認爲值得一提的是像我這樣的人開始。雙等號('==')產生沒有'escape_html'方法的輸出。 – Brosig 2017-04-15 17:17:56

相關問題