Я создаю сайт, на котором пользователи могут создавать идеи программирования для школьных проектов по программированию. Они могут просматривать все идеи и записывать (подписываться) в идею, которую создал другой пользователь. Кнопка регистрации будет на странице показа идеи от пользователяRails 4: Как реализовать ассоциацию модели, посредством которой пользователь может зарегистрировать (подписаться) в адрес других пользователей
Я попытался создать модель отношений, которая действует как таблица соединений, но это не сработало. Затем мой учитель сказал мне, что я могу создать ассоциацию has_many, не создавая специальную таблицу отношений для подключения модели пользователя и идеи, несмотря на регистрацию.
Я как бы новичок в рельсах и только что закончил учебник Rails от Michael Heartl.
Это мой код:
class User < ActiveRecord::Base
has_many :ideas
has_many :enrolled_ideas, through: :enrollments, dependent: :destroy, class_name: "Idea"
class Idea < ActiveRecord::Base
belongs_to :user
WebappProject::Application.routes.draw do
resources :users
resources :sessions, only: [:new, :create, :destroy]
resources :ideas do
member do
get :enrolled
end
end
Идеи на домашней странице (static_pages контроллер), который пользователь может нажать на кнопку. Затем он отправляется на страницу показа и идеи (idea_controller) через действие show. На этой странице (конкретная идея от пользователя) я хочу кнопку «Записаться». Поэтому, если пользователь нажимает на нее, владелец идеи может перечислить на странице своего пользователя, всех зарегистрированных пользователей.
Ahh thanks !!, я пошел на второй вариант и создал отдельную таблицу подписки. На стороне «Пользователи» я отправился на «has_many: signeded_by через:: subscriptions, источник:: пользователь», так что теперь я могу получить всех пользователей, подписавшихся на сообщение. –