2013-04-02 29 views
5

mogłem zrobić:Jaki jest najprostszy sposób użycia szablonów widoku wąsów w szynach?

render :text => Mustache.render(view_template_in_a_string, object_hash) 

w moim kontrolera, ale wydaje się bardziej konwencjonalny umieścić view_template_in_a_string w jego własnym pliku viewname.mustache.html pod poglądów/jak controllername/action.mustache.html bym z akcji. html.erb

obecnie używam

gem 'mustache' 

dla mojego wąsami potrzebuje

Jak mogę używać moszczu Ache poglądy jak bym z erb


Rozumiem, że wąsy logika jest mniej, nie muszę logikę w moich poglądów


mój obecny Hack:

# controllers/thing_controller.rb 
def some_action 
    hash = {:name => 'a name!!'} 
    vw = File.read('./app/views/'+params[:controller]+'/'+params[:action]+'.html.mustache') || "" 
    render :text => Mustache.render(vw, hash), :layout => true 
end 

Odpowiedz

1

Po prostu użyj tego klejnotu:

https://github.com/josh/mustache-rails

W ten sposób można łatwo skonfigurować aplikację szyn, aby wyświetlać poprawne szablony widoku, dzięki czemu nie będzie już potrzebny haker.

+4

Ten klejnot już nie istnieje. Ponieważ jedyną odpowiedzią jest Twoja, proponuję ją zaktualizować. – installero

4

Zaktualizowana odpowiedź, ponieważ oryginalne rozwiązanie, wąsy-szyny, przestaje istnieć.

Klejnot jest:

https://github.com/agoragames/stache

I zbędny ale prosty przykład, aby zająć jak używać Stache w naszym projekcie szyn, zrobimy początek Noises Demo App.

Na początek dodamy klejnoti stache do naszego Gemfile i uruchomimy bundle install.

Wtedy w naszym config/application.rb musimy powiedzieć stache używać mustache (druga opcja jest dostępna handlebars; również ten i inne opcje konfiguracyjne można znaleźć na ich github page).

Stache.configure do |config| 
    config.use :mustache 
end 

Oto struktura katalogów próbki z kilku przykładowych plików dla naszej aplikacji:

app/ 
    controllers/ 
    noises_controller.rb 
    models/ 
     noise.rb 
    templates/ 
    noises/ 
     animal.mustache 
    views/ 
    noises/ 
     animal.rb 

W controllers/noises_controller.rb

class NoisesController < ApplicationController 
    def animal 
    end 
end 

W models/noise.rb

class Noise < ActiveRecord::Base 
    def self.dog 
    "ar roof" 
    end 

    def self.sheep 
    "baa" 
    end 

    def self.bullfrog 
    "borborygmus" 
    end 
end 

W templates/noises/animal.mustache

<p>This is what a dog sounds like: {{ dog }}</p> 
<p>This is what a sheep sounds like: {{ sheep }}</p> 
<p>And bullfrogs can sound like: {{ bullfrog }}</p> 

W views/noises/animal.rb

module Noises 
    class Animal < Stache::Mustache::View 
    def dog 
     Noise.dog 
    end 

    def sheep 
     Noise.sheep 
    end 

    def bullfrog 
     Noise.bullfrog 
    end 
    end 
end 

Mam nadzieję, że to wyjaśnia przykład jak ktoś może użyć stache i mustache w aplikacji szyn służyć poprawny pogląd szablonów.

Powiązane problemy