2009-11-16 8 views
0

J'ai un fichier de configuration complète de cette ....syntaxe haml - meilleure façon d'écrire cela?

- if current_page.include? "test_string_one" 
     - @total_index = 3 
     - @next_location = '../random_string/page0.html' 
     - @next_name = 'title 2' 

    - if current_page.include? "test_string_two" 
     - @total_index = 10 
     - @next_location = '../another_random_string/page0.html' 
     - @next_name = 'title 3' 

est-il un moyen plus propre d'écrire cela? En utilisant Staticmatic.

Je vois qu'il y a des filtres disponibles en haml. Est-ce que tout ceci devrait être dans le filtre :ruby?

+0

Dup http://stackoverflow.com/questions/1743291/haml-syntax-better-way-of-writing-this –

Répondre

1

Ce code serait meilleur dans une aide.

il pourrait ressembler à ceci:

module SomeHelper 

    def page_options 
    @page_options ||= begin 
     options = {} 

     if current_page.include? "test_string_one" 
     options[:total_index] = 3 
     options[:next_location] = '../random_string/page0.html' 
     options[:next_name] = 'title 2' 
     elsif current_page.include? "test_string_two" 
     options[:total_index] = 10 
     options[:next_location] = '../another_random_string/page0.html' 
     options[:next_name] = 'title 3' 
     end 

     options 
    end 

    end 

end 

Ensuite, dans chaque page dont vous avez besoin, vous pouvez accéder aux options comme ceci: page_options[:total_index]

+0

Semble avoir une erreur - J'ai enregistré le fichier htis comme page_helper.rb dans helpers - staticmatic/mixins/helpers.rb: dans 'load_helper ': (eval): 1: dans 'load_helper': constante non initialisée Haml :: Helpers :: PageHelper (NameError) –

+0

C'est parce que SomeHelper devrait être enregistré comme some_helper.rb dans hel pers –