2

Bootstrapモーダルを備えたRailsアプリがあります。

モーダルを起動するコードの一部を次に示します。

  <a type="button" class="btn" href="#labor_modal" data-toggle="modal" data-woid= <%= workorder.id %>><i class="icon-time"></i></a>

モーダルのコードの一部を次に示します。

<div class="modal fade" id="labor_modal">
  <div class="modal-header">
    <a class="close" data-dismiss="modal">&times;</a>
  <h3>Add Labor</h3>
  </div>
  <div class="modal-body">
    <%= simple_form_for(Event.new, validate: true, remote: true, html: {"data-type" => :json}) do |f| %>
    <%= f.hidden_field :workorder_id, :value => data-woid.val() %>

新しいレコードに保存できるように、モーダルに渡された work order.id を取得したいと考えています。

このコードは機能していません:

<%= f.hidden_field :workorder_id, :value => data-woid.val()

どんな助けでも大歓迎です!!

PS - jquery なしでこれを実行できることを望んでいましたが、必要な場合はそうしてください。

4

2 に答える 2

0

<%= %>ERb(埋め込みRuby)タグです。内部は Ruby コードである必要があります。

data-woid.val() 

使用するコンテキストでは有効な Ruby ではありません。

ERb は、HTML をレンダリングする前に処理されます。ERb が処理される時点では、Ruby は DOM またはレンダリングされた HTML 要素またはそれらの属性を認識していません。ERb 経由で Ruby の HTML データ属性を読み取る方法はありません。ページがレンダリングされ、DOM が構築された後に、それらにアクセスする必要があります。これには JavaScript/jQuery を使用します。

work_order.id関連付けを設定するために使用されると思います。これをユーザーに公開するのは安全ではありません。送信前に値を任意に変更できます。アソシエーションはコントローラー、特にcreateを呼び出す前のアクションで設定する必要がありますsave

于 2013-01-18T22:34:30.870 に答える