0

誰かが _form.html.erb を呼び出す twitterboostrap のモーダルに慣れていますか?

これが私の試みです。

まず、フォームに次の行を追加します (これは他のフォームです)

<%= simple_form_for(@terreno, html: {class: "form-horizontal"}, remote: :true) do |f| %>
  <% if @terreno.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@terreno.errors.count, "error") %> prohibited this terreno from being saved:</h2>

      <ul>
      <% @terreno.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <%= f.input :titulo %>
  <%= f.input :direccion %>
  <%= f.input :region %>
  <%= f.input :metrocuadrado %>
  <%= f.input :precio %>
  <%= f.input :votos %>
  <%= link_to "Add image", new_image_path, id: "new_image", class: 'btn', remote: :true %>

  <div class="form-actions">
    <%= f.button :submit %>
  </div>
<% end %>

次のステップは、画像のビューを作成することです。この場合、ビューは view/images/new.js.erb です

このファイルに次のコードを追加します。

$('#new_image').hide().after('<%= j render("form") %>')

「画像を追加」ボタンをクリックしてもフォームは表示されませんが、コンソール (firebug) を表示すると、_form.html.erb の内容が表示されます (このフォームは画像コントローラーに属していることを思い出してください)。

何か案が ?

Pdt: 私の英語はとても下手です、すみません。

4

1 に答える 1

0

これは、文字の HTML エスケープが原因である可能性があります。試す:

$('#new_image').hide().after('<%= escape_javascript(raw render :partial => "form").html_safe %>');
于 2012-12-04T11:29:48.747 に答える