簡體   English   中英

Rails-在聯接表中創建/銷毀記錄

[英]Rails - Create/Destroy record in join table

我正在處理此記錄的插入/刪除,我不確定執行查詢的語法是什么。

我有一個用戶模型和一個事件模型。 我創建了一個名為Personal的聯接表,該表存儲user_id和用戶喜歡的任何事件的event_id。

我在事件控制器中創建了一個“添加”方法,因此每當有人單擊它時,它就會運行並執行我現在要開發的創建邏輯。該操作與我添加到網格中顯示所有事件的額外列相關。

用戶模型=>

 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?

有人可以幫忙嗎?

如果您使用的是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本身,而需要Event#destroy調用,但是會刪除鏈接兩者的聯接記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM