Je suis en train de créer un tas de méthodes d'aide dynamiques comme celles-ci:créer des méthodes d'aide dynamique dans les rails
show_admin_sidebar
show_posts_sidebar
show_users_sidebar
Jusqu'à présent, j'ai dans mon fichier helper.rb:
#spits out a partial
def show_sidebar(name, show_sidebar = true)
@content_for_sidebar = render :partial => "partials/#{name}"
@show_sidebar = show_sidebar
end
def show_sidebar?
@show_sidebar
end
En mon dossier de mise en page de l'application que j'ai ceci: (NB - J'utilise HAML):
- if show_sidebar?
= yield(:sidebar)
cela me permet de dire ce qui suit dans ma vi ews:
- show_sidebar(:foo)
- show_sidebar(:bar)
Et ceci rend le partiel désiré.
Le problème avec ceci est que je ne peux ajouter qu'une seule barre latérale par page. Donc, je me dis que j'ai besoin de méthodes dynamiques comme: show_admin_sidebar, show_foo_sidebar.
J'ai donc essayé de le faire:
def show_#{name}_sidebar(show_sidebar = true)
@name = name
@content_for_#{@name}_sidebar = render :partial => "partials/#{@name}"
@show_sidebar = show_sidebar
end
puis dans ma mise en page:
- if show_sidebar?
= yield("{@name}_sidebar")
Mais rails n'aime pas du tout.
J'ai essayé presque tout ce que je peux penser dans mon fichier d'aide et rien ne fonctionne. La raison pour laquelle j'utilise des méthodes auxiliaires est parce que je veux que mon contenu div soit 100% de largeur de page à moins qu'une barre latérale ne soit présente, auquel cas le contenu principal passe dans une div plus petite et le contenu de la barre latérale possèdent ..
Si je ne peux pas obtenir ce travail, alors je peux facilement résoudre le problème en ajoutant simplement les partials manuellement, mais je voudrais obtenir ma tête autour de cette ....
Quelqu'un at-il une expérience avec ce genre de chose?
THaNKYOU tellement. C'est une nouvelle étape pour moi, c'est vraiment une aide précieuse. Je pense que je peux trouver mon chemin à partir d'ici. regds steve – stephenmurdoch