0
votes

Okay y'all, here goes!

The error is:

AbstractController::ActionNotFound at /venues/1 The action 'update' could not be found for VenuesController

I'm also getting this error for the action 'destroy' in the VenuesController.

Same exact set of update/destroy issues in my GamesController that looks identical.

Routes:

Rails.application.routes.draw do
 devise_for :users
 resources :events
 resources :venues 
 resources :games

 get "profiles/:id" => "profiles#show", as: :profile
 get "profiles" => "profiles#index"
 get "calendar" => 'profiles#calendar'


 root 'welcome#index'

 get 'about' => 'welcome#about'

 get 'contact' => 'welcome#contact'
end

My VenuesController is:

class VenuesController < ApplicationController
before_action :set_venue, only: [:show, :edit, :update, :destroy]
def new
  @venue = Venue.new
end

def show
end

def index
    @v = Venue.all
end

def edit
end

def create
    @venue = Venue.new(venue_params)

        respond_to do |format|
          if @venue.save
            format.html { redirect_to @venue, notice: 'Venue was successfully created.' }
          else
            format.html { render :new }
          end
        end
    end
end

def update
    respond_to do |format|
        if @venue.update(venue_params)
          format.html { redirect_to @venue, notice: 'Venue was successfully updated.' }
        else
          format.html { render :edit }
        end
    end
end

def destroy
    @venue.destroy
    respond_to do |format|
      format.html { redirect_to venues_url, notice: 'Venue was successfully destroyed.' }
    end
end

private

    def venue_params
        params.require(:venue).permit(:name, :address, :phone, :website, :venues_type)
    end
    def set_venue
        @venue = Venue.find(params[:id])
    end

My Venue View _form.html.erb:

<%= form_for(@venue) do |f| %>
<% if @venue.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@venue.errors.count, "error") %> prohibited this venue from being saved:</h2>

      <ul>
        <% @venue.errors.full_messages.each do |message| %>
        <li><%= message %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :name %><br>
    <%= f.text_field :name %>
  </div>
  <div class="field">
    <%= f.label :address %><br>
    <%= f.text_field :address %>
  </div>
   <div class="field">
    <%= f.label :website %><br>
    <%= f.text_field :website %>
  </div>
  <div class="field">
    <%= f.label :venues_type %><br>
    <%= f.text_field :venues_type %>
  </div>
  <div class="field">
    <%= f.label :phone %><br>
    <%= f.text_field :phone, placeholder: "xxx-xxx-xxxx" %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

And then my stack:

Started PATCH "/venues/1" for ::1 at 2016-10-26 11:49:36 -0400

AbstractController::ActionNotFound - The action 'update' could not be found for VenuesController: actionpack (5.0.0.1) lib/abstract_controller/base.rb:121:in process' actionview (5.0.0.1) lib/action_view/rendering.rb:30:inprocess' actionpack (5.0.0.1) lib/action_controller/metal.rb:190:in dispatch'
actionpack (5.0.0.1) lib/action_controller/metal.rb:262:in
dispatch' actionpack (5.0.0.1) lib/action_dispatch/routing/route_set.rb:50:in dispatch' actionpack (5.0.0.1) lib/action_dispatch/routing/route_set.rb:32:inserve' actionpack (5.0.0.1) lib/action_dispatch/journey/router.rb:39:in block in serve' actionpack (5.0.0.1) lib/action_dispatch/journey/router.rb:26:in each' actionpack (5.0.0.1) lib/action_dispatch/journey/router.rb:26:in serve' actionpack (5.0.0.1) lib/action_dispatch/routing/route_set.rb:725:incall'
warden (1.2.6) lib/warden/manager.rb:35:in block in call' warden (1.2.6) lib/warden/manager.rb:34:incatch' warden (1.2.6) lib/warden/manager.rb:34:in call' rack (2.0.1) lib/rack/etag.rb:25:incall' rack (2.0.1) lib/rack/conditional_get.rb:38:in call' rack (2.0.1) lib/rack/head.rb:12:incall' rack (2.0.1) lib/rack/session/abstract/id.rb:222:in context' rack (2.0.1) lib/rack/session/abstract/id.rb:216:incall' actionpack (5.0.0.1) lib/action_dispatch/middleware/cookies.rb:613:in call' activerecord (5.0.0.1) lib/active_record/migration.rb:552:incall' actionpack (5.0.0.1) lib/action_dispatch/middleware/callbacks.rb:38:in block in call' activesupport (5.0.0.1) lib/active_support/callbacks.rb:97:in run_callbacks' activesupport (5.0.0.1) lib/active_support/callbacks.rb:750:in _run_call_callbacks'
activesupport (5.0.0.1) lib/active_support/callbacks.rb:90:in
run_callbacks' actionpack (5.0.0.1) lib/action_dispatch/middleware/callbacks.rb:36:in call' actionpack (5.0.0.1) lib/action_dispatch/middleware/executor.rb:12:incall'
actionpack (5.0.0.1) lib/action_dispatch/middleware/remote_ip.rb:79:in call' better_errors (2.1.1) lib/better_errors/middleware.rb:84:in protected_app_call' better_errors (2.1.1) lib/better_errors/middleware.rb:79:in better_errors_call'
better_errors (2.1.1) lib/better_errors/middleware.rb:57:in
call'
actionpack (5.0.0.1)
lib/action_dispatch/middleware/debug_exceptions.rb:49:in call'
web-console (3.3.1) lib/web_console/middleware.rb:131:in
call_app'
web-console (3.3.1) lib/web_console/middleware.rb:28:in block in call' web-console (3.3.1) lib/web_console/middleware.rb:18:in catch' web-console (3.3.1) lib/web_console/middleware.rb:18:in call' actionpack (5.0.0.1)
lib/action_dispatch/middleware/show_exceptions.rb:31:in
call'
railties (5.0.0.1) lib/rails/rack/logger.rb:36:in call_app'
railties (5.0.0.1) lib/rails/rack/logger.rb:24:in
block in call'
activesupport (5.0.0.1) lib/active_support/tagged_logging.rb:70:in block in tagged' activesupport (5.0.0.1) lib/active_support/tagged_logging.rb:26:intagged' activesupport (5.0.0.1) lib/active_support/tagged_logging.rb:70:in tagged'
railties (5.0.0.1) lib/rails/rack/logger.rb:24:in
call'
sprockets-rails (3.2.0) lib/sprockets/rails/quiet_assets.rb:13:in call' actionpack (5.0.0.1) lib/action_dispatch/middleware/request_id.rb:24:incall' rack (2.0.1) lib/rack/method_override.rb:22:in call' rack (2.0.1) lib/rack/runtime.rb:22:incall' activesupport (5.0.0.1) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in call' actionpack (5.0.0.1) lib/action_dispatch/middleware/executor.rb:12:incall' actionpack (5.0.0.1) lib/action_dispatch/middleware/static.rb:136:in call'
rack (2.0.1) lib/rack/sendfile.rb:111:in
call' railties (5.0.0.1) lib/rails/engine.rb:522:in call' puma (3.6.0) lib/puma/configuration.rb:225:incall' puma (3.6.0) lib/puma/server.rb:578:in handle_request' puma (3.6.0) lib/puma/server.rb:415:inprocess_client' puma (3.6.0) lib/puma/server.rb:275:in block in run' puma (3.6.0) lib/puma/thread_pool.rb:116:incall' puma (3.6.0) lib/puma/thread_pool.rb:116:in `block in spawn_thread'

Started POST "/__better_errors/0c664909e8d5ec43/variables" for ::1 at 2016-10-26 11:49:36 -0400

I'm completely stumped -- any ideas/input is much appreciated! Thanks!

1

1 Answers

3
votes

Your Venues controller's create method has an extra end, thus making everything else below it out of the controller. You are actually closing your class after the create method.

So remove one end from the create method definition and you are fine.