Таким образом, в настоящее время пользователи могут использовать rsvp несколько раз для одного и того же события.Это очевидно проблематично для моего сайта, поэтому я хочу, чтобы один пользователь мог только один раз rsvp для определенного поста / события.После того, как они сделали свой Rsvp, я хочу, чтобы кнопка rsvp исчезла.Вот как выглядит мой код.
show.html.erb
id="notice"><%= notice %></p>
<p>
<strong>Date:</strong>
<%= @post.date %>
</p>
<p>
<strong>Name:</strong>
<%= @post.name %>
</p>
<p>
<strong>User_id:</strong>
<%= @post.user_id %>
</p>
<p><strong>Address:</strong> <%= @post.address %></p>
<p>
<strong>Description:</strong>
<%= @post.description %>
</p>
<p>
<strong>registered:</strong>
<%=@post.users.length%>
</p>
<% if current_user == @post.user %>
<%= link_to 'Edit', edit_post_path(@post) %> |
<%end%>
<%= link_to 'Back', posts_path %>
<div class="rsvp"><%= button_to "Rsvp now", rsvps_post_path(@post), class: "btn btn-primary" %></div>
<div class="map"><%= image_tag "http://maps.googleapis.com/maps/api/staticmap?center=#{@post.latitude},#{@post.longitude}&markers=#{@post.latitude},#{@post.longitude}&zoom=12&size=450x400&sensor=false&key=AIzaSyCKzKMEhSNgwSXf7WV71pHWgzdpMkPn8W4",
class: 'img-fluid img-rounded', alt: "#{@post} on the map"%>
</div>
post.rb
class Post < ApplicationRecord
belongs_to :user
geocoded_by :address
after_validation :geocode, if: ->(obj){ obj.address.present? and obj.address_changed? }
reverse_geocoded_by :latitude, :longitude
after_validation :reverse_geocode
has_many :rsvps
has_many :users, through: :rsvps
validates :name, presence: true
user.rb
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :posts
has_many :rsvps
has_many :posts, through: :rsvps
validates :email, presence: true
rsvp.rb
class Rsvp < ApplicationRecord
belongs_to :user
belongs_to :post
end
# rsvp миграция
class Rsvp < ApplicationRecord
belongs_to :user
belongs_to :post
end
Итак, я посмотрел в Stackoverflow и немного погуглил, но я в растерянности.Буду очень признателен за ответ, который решит эту проблему.Я просто хочу, чтобы кнопка rsvp показывала пользователей, которые не rsvped для определенного сообщения / события.