Уровень стека слишком глубокий - Re: has_many to own_to Association - PullRequest
3 голосов
/ 01 сентября 2011

Вот мой код:

#class CategoriesController < ApplicationController
def show
  @category = Category.find(params[:id])
end

#class Category < ActiveRecord::Base
has_one :task_list

#TaskList < ActiveRecord::Base
belongs_to :category

С category_id в модели TaskList.

Я ставлю это на мой взгляд:

<%= @category.task_list.id %>

И я получаю stack level too deep ошибку.

Я заблудился и клянусь, что проделал ту же самую настройку 100 раз.

Любая помощь будет принята с благодарностью. Спасибо.

Обновление:

Вот полный след (минус верх, который я обрезал, потому что он повторялся снова и снова:

See gist link below

Обновление 2:

Хорошо, я начал с нуля и усовершенствовал кое-что, в чем я не нуждался, и делаю это именно так, как показано: http://asciicasts.com/episodes/196-nested-model-form-part-1

class Category < ActiveRecord::Base
  has_many :tasks, :dependent => :destroy
end

class Task < ActiveRecord::Base
  belongs_to :category
end

#_form.html.erb
<%= form_for @category do |f| %>
    <%= f.error_messages %>
    <p>
        <%= f.label :name %><br />
        <%= f.text_field :name %>
    </p>

    <p>
        <% f.fields_for :tasks do |builder| %>  
        <p>  
            <%= builder.text_field :name %>  
        </p>  
        <% end %>  

    </p>

    <p><%= f.submit %></p>
<% end %>

#CategoryController 
def new
  @category = Category.new
  3.times { @category.tasks.build }  
end

И я все еще получаю то же самое ... Вот полный https://gist.github.com/1185772

Обновление 3:

Вот полная версия модели Task & Category: https://gist.github.com/1185839

Ответы [ 4 ]

8 голосов
/ 01 сентября 2011

Вы проверили свои модели?

Если для обоих задано значение: destroy, то вы получите бесконечный цикл и слишком большую ошибку на уровне стека. Они должны быть следующими:

has_one :task_list, :dependent => :destroy

belongs_to :category, :dependent => :delete

Там больше информации. об ошибке здесь .

1 голос
/ 01 сентября 2011

См. Комментарий, который умер трижды по этому вопросу. У Acts_as_tree была проблема с областями, которые я сделал. И я также начал с нуля, и теперь он работает нормально.

0 голосов
/ 01 сентября 2011

Ваш список показывает задачи

Правильно ли вы сгенерировали свою модель, например:

rails g model Task category_id:integer title:string
0 голосов
/ 01 сентября 2011

Проблема в том, что task является зарезервированным словом в Rails.Вот что выводит task при выполнении в чистой консоли приложения:

irb(main):001:0> task
=> <Rake::Task  => []>

Переименуйте вашу модель, и она будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...