如何通过ui制作rsvp?

时间:2018-04-13 10:02:02

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

所以,我想做的是通过UI制作一个Rsvp。我基本上想要它,所以用户可以按一个按钮和rsvp一个事件(或这个案例的帖子)。可以通过rails控制台制作一个rsvp但我想要它所以用户可以单独rsvp一个事件没有我这样做来自后端的任何东西。

rsvp.rb

class Rsvp < ApplicationRecord
  belongs_to :user
  belongs_to :post
end

show.html.erb

<p id="notice"><%= notice %></p>


<p>
  <strong>Date:</strong>
  <%= @post.date %>
</p>
<p>where:<%=@post.longitude %>, <%=@post.latitude%></p>

<p>
    <strong>Name:</strong>
    <%= @post.name %>
</p>

<p>
  <strong>User_id:</strong>
  <%= @post.user_id %>
</p>


<p>
  <strong>Description:</strong>
  <%= @post.description %>
</p>

<% if current_user == @post.user %>
 <%= link_to 'Edit', edit_post_path(@post) %> |
<%end%>
 <%= link_to 'Back', posts_path %>

 <%= link_to "sign up", posts_url, class:"btn btn-primary" %> 

所以基本上是post_url的按钮,我希望它是rsvp按钮。我很感激一些帮助,因为我是一般性的铁轨和编程新手。如果您需要更多代码供我发帖,请与我们联系。

1 个答案:

答案 0 :(得分:0)

您需要一个控制器动作(具有相应的路线,记得使用POST动词而不是GET)。您可以在posts控制器中使用自定义操作,但我认为您最好在RSVP控制器中使用create action。

未经测试的伪代码传入 -

在routes.rb中:

resources :posts do
  post 'rsvp', to: 'rsvps#create', on: :member
end

在你的rsvp控制器中:

def create
  rsvp = current_user.rsvps.build({post_id: params[:id]})
  if rsvp.save 
  # and so on

在你看来:

<%= button_to "Sign up", rsvps_post_path(@post), class: "btn btn-primary" %>

您可以使用相同的技术使用destroy动作来解锁rsvp。