Je travaille sur un peu d'extension pour Radiant CMS qui traite les données de levé. J'essaie d'utiliser form_for, fields_for et divers helpers que les rails fournissent à l'intérieur des tags de rayon prédéfinis. Ces balises généreraient l'enquête sur les pages Radiant.Radiant CMS: comment utiliser form_for, fields_for dans les tags de rayon
Voici ce que je pense pour l'intégration avec Radiant:
<r:survey id="200">
<r:survey:form> #<-- call to form_for
<r:survey:questions:each> # <-- calls fields_for
<r:question> # <-- renders question
<r:answer_field> #<-- renders input via text_field, text_area, etc
</r:survey:questions:each>
</r:survey:form>
</r:survey>
Alors quand je l'appelle < r: enquête: forme >, il suppose que pour générer < tag forme >. Je peux le faire en fabriquant manuellement le code HTML, mais je voudrais utiliser form_for helper et autres.
Est-il possible que je pourrais obtenir les résultats suivants:
# ------ <r:survey:form> -----------------------------
tag 'survey:form' do |tag|
# call form_for which would render form header and open <form> tag
tag.expand
# form_for would end here, closes </form>
end
# ------ <r:survey:questions>----------------------------
tag 'survey:questions' do |tag|
tag.expand
end
# ------ <r:survey:questions:each>------------------------
tag 'survey:questions:each' do |tag|
result = []
survey = tag.locals.survey
# should call fields_for here
survey.survey_questions.sort_by{|q| q.order}.each do |question|
tag.locals.question = question
result << tag.expand
end
# end of fields_for
result
end
J'espère que cela explique ce que je suis en train d'accomplir.
Une chance avec cette question? – Trip
Le meilleur que je pourrais trouver est d'appeler le modèle de rendu dans le bloc de balise comme ceci: 'response.template.render: partial => 'partial_name',: local => {: var => val,: tag => tag} ' puis dans le partiel pour appeler' tag.expand' pour développer les balises internes. Pas élégant, mais ça marche. – Swartz