RSVP一个事件选项

时间:2018-04-12 04:48:18

标签: ruby-on-rails ruby ruby-on-rails-5

所以我想要一个允许用户为特定事件制作rsvp的选项。该活动还应该有一份已经参加活动的人员名单。 我已经尝试了无数个小时来解决这个问题,并阅读了一些我认为相关但却没有成功的教程。我不确定在这篇文章中我需要显示多少代码所以我只是链接我的github。 Free Flowing multi-directional Smooth scrollable android overlay UI

我真的很感谢帮助,我不是要求你们中的任何人为我完成代码,通过查看你们经验丰富的人员解决方案来学习它的概念真的很有帮助。比我在铁轨上。

1 个答案:

答案 0 :(得分:0)

RSVP本质上是在现实生活中创造人与事件之间关联的事物。同样,在您的代码中,您将如何将两个模型链接在一起。

因此,要做到这一点,RSVP应该是用户和事件之间的连接表。通过查看您的代码,您似乎没有Event模型,因此我假设您的情况EventPost相同

所以你会做这样的事情:

<强> Rsvp.rb

class Rsvp < ApplicationRecord
  belongs_to :user
  belongs_to :post
end

然后创建关联:

<强> User.rb

class User < ApplicationRecord
  has_many :rsvps
  has_many :posts, through: :rsvps
end

<强> Post.rb

class Post < ApplicationRecord
  has_many :rsvps
  has_many :users, through: :rsvps
end

然后创建相关的迁移:

class CreateRsvps < ActiveRecord::Migration[5.1]
  def change
    create_table :rsvps do |t|
      t.belongs_to :user
      t.belongs_to :post
    end
  end
end

现在您可以通过以下方式回复事件:

Rsvp.create(user_id: user_id, post_id: post_id)

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

user.posts

或所有RSVP参与活动的人员名单:

post.users