2010-02-19 109 views
2

我工作的这个纪录插入/删除我不知道语法是什么来执行查询。导轨 - 创建/销毁记录在连接表

我有一个用户模型和事件模型。我创建了一个名为Personal的加入表,用于存储用户喜欢的任何事件的user_id和event_id。

我创造了我的事件控制器中的“添加”方法,所以每当有人点击它运行于并执行创建逻辑,我试图发展now.The动作被绑定到我添加到网格显示额外的列所有的事件。

用户模型=>

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? 

任何人都可以帮忙吗?

+0

请提供更多信息。 msg的错误是什么?发生了什么,你不想或不发生你想要的事情? 我看到一个问题:你确定会话已经加载了user_id吗?此外,请检查您的日志,看看传入的参数对于您的控制器操作是什么 – 2010-02-19 15:10:05

+0

请编辑您的问题并发布显示它们之间关系的'User','Event'和'Personal'模型的代码。 – 2010-02-19 15:19:53

+1

抱歉没有更好地解释情况,我更新了这个问题,并希望得到任何帮助 – ChrisWesAllen 2010-02-19 15:41:02

回答

12

如果您使用的是has_and_belongs_to_many协会,这将是不幸的,删除相关的链接可能会非常棘手,因为是为每个链接都没有标识符。

使用的has_many:通过关系更容易维护,将允许你做简单的事情,如:

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

@user.events.delete(@event) 

这不会删除该事件本身,那将会需要一个事件#破坏通话,而是连接两者的连接记录。