У меня есть модель задачи:
## Task
has_many :children, :class_name => "Task"
belongs_to :parent, :class_name => "Task", :foreign_key => "parent_id"
Обычно у пользователя много задач, а у каждой задачи много дочерних.
Я сделал это в представлении:
<%= render @tasks %>
И он работал нормально, когда структура данных была одномерной.
Однако я продолжаю получать сообщение об ошибке "(SQLite3 :: SQLException: нет такого столбца: tasks.task_id: ВЫБРАТЬ" tasks ". * ИЗ" tasks "WHERE" tasks "." Task_id "= 138)" после добавления ассоциации. Я ожидал «parent_id», так как это то, что модель должна ссылаться.
Я предполагаю, что это из-за того, что rails неявно связывают локальную переменную "task" с ее классом "task". Например, я хочу построить форму внутри комментария примерно так:
## inside _task.html.erb
<%= form_for task.children.build do |f| %>
<%= f.text_area :description %>
<% end %>
Но это не работает, потому что task.children получает сообщение о том, что у задачи нет столбца «task_id», когда он должен ссылаться на «parent_id». Есть ли способ обойти эту проблему?