首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RSVP事件选项

RSVP事件选项
EN

Stack Overflow用户
提问于 2018-04-12 04:48:17
回答 1查看 149关注 0票数 0

所以我想要一个选项,让用户为一个特定的事件制定一个rsvp。该事件还应该有一个已经为事件回复的人的列表。我已经尝试了无数个小时来解决这个问题,并阅读了一些我认为相关的教程,但没有成功。我不知道我需要在这篇文章中展示多少代码,所以我只想链接我的github。platform

我真的很感激你们的帮助,我也不要求你们中的任何人为我完成代码,通过看看你们的解决方案,他们在rails上比我更有经验,这对我学习它的概念是非常有帮助的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-12 05:34:38

在现实生活中,RSVP本质上是在人与事件之间建立联系的东西。类似地,在您的代码中,这就是如何将这两个模型连接在一起的方法。

因此,要做到这一点,RSVP应该是用户和事件之间的连接表。从您的代码来看,您似乎没有Event模型,所以对于您的情况,EventPost是一样的

所以你会这样做:

Rsvp.rb

代码语言:javascript
复制
class Rsvp < ApplicationRecord
  belongs_to :user
  belongs_to :post
end

然后创建协会:

User.rb

代码语言:javascript
复制
class User < ApplicationRecord
  has_many :rsvps
  has_many :posts, through: :rsvps
end

Post.rb

代码语言:javascript
复制
class Post < ApplicationRecord
  has_many :rsvps
  has_many :users, through: :rsvps
end

然后创建相关迁移:

代码语言:javascript
复制
class CreateRsvps < ActiveRecord::Migration[5.1]
  def change
    create_table :rsvps do |t|
      t.belongs_to :user
      t.belongs_to :post
    end
  end
end

现在,您可以通过这样做来回复事件:

代码语言:javascript
复制
Rsvp.create(user_id: user_id, post_id: post_id)

如果您想要一个用户将要发生的所有事件的列表,您可以这样做:

代码语言:javascript
复制
user.posts

或者是所有对某一事件都有回复的人的名单:

代码语言:javascript
复制
post.users
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49788186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档