Rails - создание / уничтожение записи в объединяемой таблице - PullRequest
4 голосов
/ 19 февраля 2010

Я работаю над этой вставкой / удалением записи. Я не уверен, какой синтаксис используется для выполнения запроса.

У меня есть модель пользователя и модель события.Я создал присоединяющуюся таблицу с именем Personal, в которой хранятся user_id и event_id любых событий, которые нравятся пользователям.

Я создал метод «Add» в моем контроллере событий, поэтому всякий раз, когда кто-то нажимает его, запускается и выполняетсялогику создания, которую я сейчас пытаюсь развить. Действие привязано к дополнительному столбцу, который я добавил в сетку для отображения всех событий.

Модель пользователя =>

 has_many :personals

модель события =>

has_many :personals

Личная модель =>

belongs_to :user
belongs_to :events

Я думал, что это будет что-то вроде =>

 @user = User.find(session[:user_id])
 @event = Event.find(params[:id])
 # Personal.new = User.Event?

Может кто-нибудь помочь?

1 Ответ

19 голосов
/ 19 февраля 2010

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

Использование отношений has_many :through гораздо проще поддерживать и позволит вам выполнять простые вещи, такие как:

class User < ActiveRecord::Base
  has_many :user_events
  has_many :events,
    :through => :user_events
end

@user.events.delete(@event)

Это не удаляет само Событие, для которого потребовался бы вызов Event#destroy, а записывает соединение, которое связывает два.

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