所以我收到了标题中所述的错误。我必须在Postscontroller中编写什么代码来解决这个问题?我不确定我在这里要做什么,我是否必须在我的帖子控制器中定义rsvp?如果是这样的话我将如何去做呢?
class RsvpController < ApplicationController
def create
rsvp = current_user.rsvps.build({post_id: params[:id]})
if rsvp.save
end
end
end
Show.html.erb
<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 %>
<%= button_to "Rsvp now", rsvp_post_path(@post), class: "btn btn-primary" %>
的routes.rb
Rails.application.routes.draw do
mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
resources :posts
devise_for :users
root 'home#index'
get 'home/ruby_meetup'
resources :posts do
post 'rsvp', on: :member
end
此外,我想要它,以便显示已经为该事件进行过搜索的人员列表。我该怎么做呢?我会感激一些帮助,因为我还在学习rails,这是我的第一个项目。
答案 0 :(得分:0)
通过以下行,您可以定义路线:
resources :posts do
post 'rsvp', on: :member
end
通过这条线,你要求这条路线:
要处理请求,您需要一个控制器操作rsvp
,实际上是错误状态。
因此,只需定义操作(方法)并处理请求:
class RsvpController < ApplicationController
def create
rsvp = current_user.rsvps.build({post_id: params[:id]})
if rsvp.save
end
end
def rsvp
# process the request here...
end
end