我在我的控制器中目前有我的参加方法。我的问题是我如何知道是否将此放入事件或用户模型与我的事件控制器?我也将添加另一个方法remove_attend,这将做相反的参加。我在什么时候将这些方法放入模型中?我应该把它放在我的控制器或模型中吗?
def attend
@event = Event.find(params[:id])
if @event.users.include?(current_user)
flash[:error] = "You're already attending this event."
else
current_user.events << @event
flash[:success] = "Attending event!"
end
redirect_to @event
end
所以我们可以说我需要一种方法来删除用户和事件之间的关系......并且我需要这个方法在事件和用户视图/控制器中都可用...我应该把它放在事件助手中吗?这属于哪里? – 2011-06-08 03:22:46
理想情况下,这应该属于事件模型。你应该在偶数模型上有一个删除方法。然后,用户可以使用像user.event.remove这样的关联代理来调用该方法。这是Rails的美丽:) – Spyros 2011-06-08 03:30:31
最后一个问题:我在事件模型中做了一个remove_attendance方法。我应该直接从视图中调用该方法,还是应该在两者之间放置一个控制器? – 2011-06-08 03:32:51