0

AJAX でフォームをレンダリングしようとしています。非 ajax バージョンは正常に動作しますが、ajax 化されたバージョンは動作しません。それへのリンクは index.html.erb にあります。Webrick サーバーは次のように表示します。

2012-11-19 17:19:27 -0500 で 127.0.0.1 の GET "/categories/3/new_sub" を開始
しました JS パラメータとして CategoriesController#new_sub で処理
: {"id"="3"}
カテゴリ ロード (0.1 ms) SELECT "categories".* FROM "categories" WHERE "categories"."id" = ? LIMIT 1 [["id", "3"]]
レンダリングされたカテゴリ/_form.html.erb (1.8ms)
レンダリングされたカテゴリ/new_sub.js.erb (3.6ms)
8ms で 200 OK を完了 (ビュー: 6.3ms | ActiveRecord: 0.1ms)

ここに私のカテゴリコントローラがあります:

# GET /categories
# GET /categories.json
def index
  @categories = Category.roots

  respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @categories }
  end
end

# GET /categories/1/new_sub.html
# GET /categories/1/new_sub.js
def new_sub
  @parent = Category.find(params[:id])
  @category = Category.new

  respond_to do |format|
    format.html
    format.js
  end
end

index.html.erb:

<h1>Listing categories</h1>

<%= recurse_categories(@categories) %>

<br />

<%= link_to 'New Category', new_category_path %>

recurse_categories ヘルパー:

def recurse_categories(cats)
  s = "<ul>"
  cats.each do |cat|
    s << "<li id=\"#{cat.id}\">#{link_to cat.name, new_sub_category_path(cat), remote: true}</li>"
    if cat.has_children?
      s << recurse_categories(cat.children)
    end
  end
  s << "</ul>"
  s.html_safe
end

new_sub.js.erb:

$('ul').after(<%= render partial: "form", locals: { parent: @parent, category: @category } %>);

_form.html.erb:

<%= form_for(category) do |f| %>

  <div class="field">
    <%= f.text_field :name  %>
    <%= f.hidden_field :ancestry, value: "#{parent.ancestry + '/' + parent.id.to_s}" %>
    <%= f.submit "Create subcategory" %>
  </div>

<% end %>
4

2 に答える 2

1

「ul」タグは、カテゴリ エラーの条件ブロックの下にあります。「error_explanation」div に応答を追加してもよろしいですか。

span タグを使用して new_sub.js.erb で使用できます

<div class="field">

 <span id="subcat"/>     

<%= f.text_field :name  %>
<%= f.hidden_field :ancestry, value: "#{parent.ancestry + '/' + parent.id.to_s}" %>
<%= f.submit "Create subcategory" %>

于 2012-11-19T23:39:17.123 に答える
0

修正しました!jqueryセレクターとパラメーターを囲む引用符を忘れてしまいました.DUH!

于 2012-11-20T01:14:57.893 に答える