Пользователь и project_model имеют ассоциацию habtm, и это часть индекса project_models, и каждый из них предназначен для отображения списка отображаемых объектов project_models.users. Так просто, как это происходит, по какой-то причине он продолжает бросать ошибку:Попытка перечислить всех пользователей принадлежит к этой модели проекта
Редактировать: Забыл упомянуть, что у каждого пользователя есть много деталей, один из которых является их электронной почтой, которую я пытаюсь отобразить в список.
@members = project_model.users.all
<% @members.each do |member| %>
<%= member.email %>
<% end %>
Это говорит мне .each - это неопределенный метод для nil: NilClass. Я не понимаю, что я сделал неправильно. Неправильно ли настроена таблица соединений?
class CreateJoinTableProjectModelUser < ActiveRecord::Migration
def change
create_join_table :users, :project_models do |t|
# t.index [:user_id, :project_model_id]
# t.index [:project_model_id, :user_id]
end
end
end
Или это что-то еще? Я новичок в Rails (первый раз должен его использовать), поэтому, пожалуйста, простите меня, если вопросы немного разрядились.
на это нельзя ответить должным образом без использования метода контроллера. Где вы объявляете своих @members? И где вы ссылаетесь на этот экземпляр? Вы уверены, что действие контроллера соответствует файлу просмотра? –
Ну, это объявлено в представлении, так как все объекты project_models хранятся в моделях @project_models в контроллере, но project_model.users предназначен для каждого конкретного экземпляра, поэтому я думал, что делать это в контроллере не получится. Разве невозможно объявить что-то в этом, потому что я думал, что мы можем? Я уверен, что видел код, где люди объявили их вне контроллеров? – gllwrnce
, если это '@ project_models' в контроллере, почему он называется' project_models' в поле зрения? Это возможно, но это нарушает логику Rails. –