ユーザーがより多くの入力領域を作成することを選択できるフォームがあります (より多くの情報を提供するため)。ユーザーがクリックするリンクがあり、追加のフォーム入力が作成されます。自分で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">Add Point</a>
引用符により、「Z」 id="add_point">Add Point" というテキストでリンクが表示されます。
このスクリーンキャストからデータ属性のアイデアを得ました