所以,我想做的是通过UI做出一个Rsvp。我基本上想要它,这样用户就可以为事件按下一个按钮和rsvp (或者在本例中为post ),.It可以通过rails控制台使rsvp成为可能,但我想要它,这样用户就可以为事件单独地rsvp,而无需我在后端做任何事情。
rsvp.rb
class Rsvp < ApplicationRecord
belongs_to :user
belongs_to :post
endshow.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" %> 所以,基本上,posts_url的按钮,我希望它是rsvp按钮。我会感谢一些帮助,因为我是新的rails和编程在一般情况下。如果你需要更多的代码来发布,请告诉我。
发布于 2018-04-13 11:17:54
您将需要一个控制器操作(使用相应的路由,记住使用POST动词而不是GET)。您可以在posts控制器中使用自定义操作,但我认为最好在RSVP控制器中使用create操作。
未经测试的伪码传入--
在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" %>您可以使用相同的技术,使用破坏操作的use。
https://stackoverflow.com/questions/49814353
复制相似问题