【问题标题】:Unknown action:The action 'rsvp' could not be found for PostsController未知操作:找不到 PostsController 的操作“rsvp”
【发布时间】:2018-04-14 16:33:18
【问题描述】:

所以我得到了标题中所述的错误。我必须在我的 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,这是我的第一个项目。

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    通过以下行,您定义了路线:

    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
    

    【讨论】:

    • 我将如何定义它?抱歉,我对 Rails 很陌生。
    • @automationprogramming10 老实说,我不知道。这完全取决于您的应用程序的逻辑
    猜你喜欢
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多