У меня есть небольшое приложение, в котором у меня есть простая пользовательская модель, и сейчас я пытаюсь добавить функциональность мягкого удаления (да, я знаю, что для этого есть некоторые драгоценности). Работает отлично для пользователей, однако, когда я удаляю пользователя, связанное представление темы сворачивается, поскольку он больше не может найти удаленного пользователя из-за используемой по умолчанию области действия. Любая идея, как это сделать?Rails soft delete with has_many association
class User < ActiveRecord::Base
has_many :topics
has_many :comments
default_scope { where(active: true) }
end
def index
@topics=Topic.all
end
class UsersController < ApplicationController
def index
if current_user and current_user.role == "admin"
@users=User.unscoped.all
else
@users=User.all
end
end
Часть зрения (topic.user.name, где она перестает работать):
<% @topics.each do |topic| %>
<tr>
<td><%=link_to topic.title, topic %></td>
<td><%=h topic.description %></td>
<td><%= topic.user.name %></td>
<td><%=h topic.created_at.strftime('%Y %b %d %H:%M:%S') %></td>
<td><%=h topic.updated_at.strftime('%Y %b %d %H:%M:%S') %></td>
</tr>
<% end %>
Я не вижу '@topics', определенный в вашем коде контроллера? Можете ли вы опубликовать этот код? – Surya
Также вы хотите отобразить все темы (событие для тех пользователей, чей активный столбец установлен в false)? – Surya
Добавлен список указателей контроллера, хотя это очень просто. – user3133406