Я работаю над расширением для Radiant CMS, которое обрабатывает данные опросов. Я пытаюсь использовать form_for, fields_for и различные помощники, которые rails предоставляет внутри предопределенных тегов радиуса. Эти теги будут генерировать опрос на страницах Radiant.
Вот что я имею в виду для интеграции с 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>
Поэтому, когда я вызываю , предполагается, что сгенерируется тег Я могу сделать это вручную, создав html, но я бы хотел использовать помощник form_for и тому подобное.
Есть ли способ, которым я мог бы достичь следующего:
# ------ <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
Я надеюсь, что это объяснит то, что я пытаюсь достичь.