我在Rails 5
中有一个活动应用,我试图建立一个 RSVP系统。
我尝试构建的功能是用户可以转到事件展示页面并点击“&rsffp”。按钮。然后,此用户将显示在“参加此活动的用户”下的活动展示页面中。此外,该活动还会显示在用户的展示页面上 - '此用户正在参加以下活动'。
我对Rails
很陌生,我不确定如何处理rsvp按钮功能。到目前为止,这是我的代码:
user.rb
class User < ApplicationRecord
...
has_many :attendances
has_many :events, through: :attendances
...
end
event.rb
class Event < ApplicationRecord
has_many :attendances
has_many :users, through: :attendances
end
attendance.rb
class Attendance < ApplicationRecord
belongs_to :user
belongs_to :event
end
的routes.rb
Rails.application.routes.draw do
root 'events#index'
resources :events do
resources :users
end
resources :users
end
这是事件展示页面上的表单,我试图将用户添加到活动中
show.html.erb - 活动
<%= form_for([@event, @event.users.build] do |f| %>
<%= f.hidden_field :user_id, value: current_user.id %>
<%= f.submit "RSVP", class: "btn btn-default" %>
<% end %>
如果您需要任何额外的代码发布,请告诉我。
答案 0 :(得分:1)
从您的控制器的操作中找到该事件,然后将用户添加到简单的出勤中
event = Event.find_by_id(params[:event_id])
user = User.find_by_id(params[:user_id])
attendance= event.attendances.create(user_id=>user.id)
当您想知道参加活动的用户时,您可以找到:
users = event.users