加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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的做事方式,因此是更好的做法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读