1

ユーザーがより多くの入力領域を作成することを選択できるフォームがあります (より多くの情報を提供するため)。ユーザーがクリックするリンクがあり、追加のフォーム入力が作成されます。自分でhtmlを書く必要がないように、Railsフォームヘルパーを使いたいです。フォーム ヘルパーを直接 coffeescript に挿入し、出力された html をリンクの data タグに保存しようとしましたが、coffeescript で ruby​​ コードを実行できず、data 属性でエスケープの問題が発生しています。

フォームは次のとおりです。

= simple_form_for([@site, @zone]) do |f|
  = f.error_notification

  .form-inputs
    = f.input :site_id

    = label_tag "X"
    = text_field_tag 'x_coords[]'

    = label_tag "Y"
    = text_field_tag 'y_coords[]'

    = label_tag "X"
    = text_field_tag 'x_coords[]'

    = label_tag "Y"
    = text_field_tag 'y_coords[]'

    = label_tag "X"
    = text_field_tag 'x_coords[]'

    = label_tag "Y"
    = text_field_tag 'y_coords[]'

    = link_to "Add Point", "#", id: "add_point", data: { fields: label_tags }

  .form-actions
    = f.button :submit

ユーザーが「ポイントの追加」リンクをクリックすると、次のブロックをもう 1 つ追加したいと思います。

= label_tag "X"
= text_field_tag 'x_coords[]'

= label_tag "Y"
= text_field_tag 'y_coords[]'

label_tagsにあるapplication_helper.rb:

def label_tags
  label_tag "Z"
end

問題は、「ポイントの追加」リンクの出力が次のとおりであることです。

<a href="#" data-fields="<label for=" z"="">Z" id="add_point"&gt;Add Point</a>

引用符により、「Z」 id="add_point">Add Point" というテキストでリンクが表示されます。

このスクリーンキャストからデータ属性のアイデアを得ました

4

2 に答える 2