1

Ruby on Rails のようなビュー ヘルパーを作成する、エクスプレス ヘルパーというモジュールを開発しています。RoR に似た form_for メソッドを作成しようとしていますが、ejs の動作に問題があります。

これが私がビューを機能させたい方法です:

<% form_for("user", {multipart: true}, function(f){ %>
  <%= f.label_for("username") %>
  <%= f.text_field("username") %>
  <%= f.submit() %>
<% }) %>

現在、内側のタグの周りにフォームタグを挿入しようとしていますが、それも機能していません。そして、 form_for メソッドを <%= タグに入れてみましたが、分離された例を処理できません <%= form_for("user", {multipart: true}, function(f){ %><% }) %>

これは私の現在のメソッドコードです

helpers.form_for = function(form_obj_string, html_options, formcall){
    var form_obj = this[form_obj_string]

    var old = formcall.toString();
    var args = old.substring(old.indexOf("(") + 1, old.indexOf(")"));
    var scr = old.substring(old.indexOf("{") + 1, old.lastIndexOf("}") - 1);
    eval("t.formcall = function (" + args + "){" + scr + " }");

    var form_helpers = {
        formObj: form_obj,
        label_for: function(element_string, html_options){
            helpers.label_for(form_obj_string+"["+element_string+"]", html_options)
        },
        text_field: function(element_string, html_options){
            helpers.text_field_tag(form_obj_string+"["+element_string+"]", html_options["value"], html_options)
        },
        text_area: function(element_string, html_options){
            helpers.text_area_tag(form_obj_string+"["+element_string+"]", html_options["value"], html_options)
        },
        submit: helpers.submit_tag
    }

    return helpers.form_tag('/'+form_obj_string+'s',html_options) + formcall(form_helpers) + helpers.form_end_tag();
}

ヘルパーは問題なく動作しています。基本的にやりたいことは、比較的直感的な方法でフォームのボディの周りにフォーム タグを挿入することだけです。

アイデアや落胆はありますか?

4

0 に答える 0