ruby-on-rails – Rails控制器(活动事件)
发布时间:2020-12-17 02:55:54 所属栏目:百科 来源:网络整理
导读:我试图理解,1和2行代码之间有什么区别. 这是相同的代码吗?谢谢 ! Activity : has_many :eventsEvent : belongs_to :activity 1) @activity = Activity.find(params[:activity_id])event = Event.new(event_params)event.activity_id = @activity 2)编辑,’
我试图理解,1和2行代码之间有什么区别.
这是相同的代码吗?谢谢 ! Activity : has_many :events Event : belongs_to :activity 1) @activity = Activity.find(params[:activity_id]) event = Event.new(event_params) event.activity_id = @activity 2)编辑,’事件’应该是多元化的. @activity = Activity.find(params[:activity_id]) event = @activity.events.new(event_params) 解决方法
是的,一般来说,这两种方法基本上是做同样的事情,并会产生相同的结果.
在方案1中:您正在查找活动并初始化事件,然后将事件与活动相关联. 在方案2中:您正在查找活动,然后使用事件关联初始化其中一个关联事件.虽然它应该是:@ activity.events.new(event_params)NOT @ activity.event.new(event_params)[注意事件应该是复数,因为你有一个has_many关联] 如果在两种情况下都调用save,您将得到相同的结果.基本上,当您调用:activity.events时,您将获得与该活动关联的事件列表.在两种情况下,上面创建的事件都将在该列表中. 然而,尽管两种情况都在做同样的事情,但第二种方式被认为是更多Railsy的做事方式,因此是更好的做法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |