私は
Admin :: ChecklistsController#showのSystemStackError
スタックレベルが深すぎます
コントローラのアクション:
# GET /admin/checklists/1
# GET /admin/checklists/1.json
def show
@admin_checklist = Admin::Checklist.find(params[:id])
respond_to do |format|
format.html #show.html.erb
format.json { render json: @admin_checklist }
end
end
そしてモデル
class Admin::Checklist < ActiveRecord::Base
attr_accessible :description, :name, :usable, :categories_attributes
has_many :categories, :dependent => :destroy
validates_presence_of :name,:description
accepts_nested_attributes_for :categories, :allow_destroy => true
end
class Admin::Category < ActiveRecord::Base
attr_accessible :export_head, :export_position, :export_text, :frontend_head, :frontend_position, :frontend_text
belongs_to :checklist
validates_presence_of :frontend_head, :frontend_text
end
私はすでにattributes_accessibleで少し遊んでいました。:categories_attributesを:categoriesに置き換えると
次に、エンドレスループエラーを失いますが、予想どおり、カテゴリ属性を一括割り当てできなくなりました
誰もが私が両方のエラーを修正する方法を思いついた。
編集:
2012-12-1210:12:41+0100で192.168.4.191のGET"/admin / checklists / 4"を開始しました。Admin::ChecklistsController#showによるHTMLパラメータとしての処理:{"id" => "4"} Admin ::チェックリストの読み込み(0.2ms)SELECT"admin_checklists"。*FROM "admin_checkli
sts"WHERE"admin_checklists"。"id"=?LIMIT 1 [["id"、 "4"]] CACHE(0.0ms)SELECT"admin_checklists"。*FROM "admin_checklists" WHERE"admin_checklists
"。"id"=?LIMIT 1 [["id"、"4"]]240ミリ秒で500の内部サーバーエラーを完了しましたSystemStackError(スタックレベルが深すぎます):actionpack(3.2.9)lib / action_dispatch / Middleware / reloader.rb:70
レンダリングされた/var/lib/gems/1.9.1/gems/actionpack-3.2.9/lib/action_dispatch/middleware/templates/rescues/_trace.erb(1.5ms)レンダリングされた/var/lib/gems/1.9.1/ gems / actionpack-3.2.9 / lib / action_dispatch / middlew are / テンプレート/rescues/_request_and_response.erb(1.3ms)レンダリングされた/var/lib/gems/1.9.1/gems/actionpack-3.2.9/lib/action_dispatch/ミドルウェア/テンプレート/レスキュー/diagnostics.erbレスキュー/レイアウト内(10.7ms)
このSQL-Staementは、ページリクエストごとに約100回取得されます。これは、アクティブレコードのバグか、ネストされたモデルのアクティブレコードの誤用のようです.....
Edit2:
irb(main):001:0> Admin :: Checklist.find( '4')Admin :: Checklist Load(0.2ms)SELECT"admin_checklists"。*FROM "admin_checkli
sts"WHERE"admin_checklists"。"id"=?LIMIT 1 [["id"、 "4"]] =>#BrummliBrummliBrummliBrummliBrummliBrummliBr ... "、使用可能:false、created_at:" 20 12-12-11 13:43:23 "、updated_at:" 2012-12-11 13:43:23 ">