好的,你们都来了!
错误是:
AbstractController :: ActionNotFound at / venues / 1动作'更新' 无法找到VenuesController
我也在VenuesController中的'destroy'动作中收到此错误。
我的GamesController中看起来完全相同的更新/销毁问题。
路线:
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是:
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
我的场地视图_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 %>
然后是我的筹码:
在2016-10-26 11:49:36 -0400为:: 1开始PATCH“/场地/ 1”
AbstractController :: ActionNotFound - 动作“更新”不可能 找到VenuesController:actionpack(5.0.0.1) lib / abstract_controller / base.rb:121:在
process' actionview (5.0.0.1) lib/action_view/rendering.rb:30:in
进程'actionpack中 (5.0.0.1)lib / action_controller / metal.rb:190:在dispatch'
dispatch'中 actionpack(5.0.0.1)lib / action_dispatch / routing / route_set.rb:50:in
actionpack (5.0.0.1) lib/action_controller/metal.rb:262:indispatch' actionpack (5.0.0.1) lib/action_dispatch/routing/route_set.rb:32:in
发送'actionpack (5.0.0.1)lib / action_dispatch / journey / router.rb:39:在block in serve' actionpack (5.0.0.1) lib/action_dispatch/journey/router.rb:26:in
每个'actionpack(5.0.0.1)中 lib / action_dispatch / journey / router.rb:26:在serve' actionpack (5.0.0.1) lib/action_dispatch/routing/route_set.rb:725:in
调用' warden(1.2.6)lib / warden / manager.rb:35:inblock in call' warden (1.2.6) lib/warden/manager.rb:34:in
catch'warden(1.2.6) lib / warden / manager.rb:34:incall' rack (2.0.1) lib/rack/etag.rb:25:in
call'rack(2.0.1) lib / rack / conditional_get.rb:38:incall' rack (2.0.1) lib/rack/head.rb:12:in
call'rack(2.0.1) lib / rack / session / abstract / id.rb:222:在context' rack (2.0.1) lib/rack/session/abstract/id.rb:216:in
调用'actionpack(5.0.0.1) lib / action_dispatch / middleware / cookies.rb:613:在call' activerecord (5.0.0.1) lib/active_record/migration.rb:552:in
调用'actionpack中 (5.0.0.1)lib / action_dispatch / middleware / callbacks.rb:38:inblock 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:在_run_call_callbacks'
run_callbacks'actionpack(5.0.0.1)中 lib / action_dispatch / middleware / callbacks.rb:36:in
activesupport (5.0.0.1) lib/active_support/callbacks.rb:90:incall' actionpack (5.0.0.1) lib/action_dispatch/middleware/executor.rb:12:in
call'
actionpack(5.0.0.1)lib / action_dispatch / middleware / remote_ip.rb:79:incall' better_errors (2.1.1) lib/better_errors/middleware.rb:84:in
protected_app_call'beperior_errors(2.1.1) lib / better_errors / middleware.rb:79:inbetter_errors_call'
call'
better_errors (2.1.1) lib/better_errors/middleware.rb:57:in
actionpack(5.0.0.1)
lib / action_dispatch / middleware / debug_exceptions.rb:49:incall'
call_app'
web-console (3.3.1) lib/web_console/middleware.rb:131:in
web-console(3.3.1)lib / web_console / middleware.rb:28:inblock 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
railties(5.0.0.1)lib / rails / rack / logger.rb:36:incall_app'
块中的电话'
railties (5.0.0.1) lib/rails/rack/logger.rb:24:in
activesupport(5.0.0.1)lib / active_support / tagged_logging.rb:70:inblock in tagged' activesupport (5.0.0.1) lib/active_support/tagged_logging.rb:26:in
已标记为'activesupport (5.0.0.1)lib / active_support / tagged_logging.rb:70:intagged'
call'
railties (5.0.0.1) lib/rails/rack/logger.rb:24:in
sprockets-rails(3.2.0)lib / sprockets / rails / quiet_assets.rb:13:incall' actionpack (5.0.0.1) lib/action_dispatch/middleware/request_id.rb:24:in
称'机架' (2.0.1)lib / rack / method_override.rb:22:在call' rack (2.0.1) lib/rack/runtime.rb:22:in
调用'activesupport(5.0.0.1) LIB / active_support /缓存/策略/ local_cache_middleware.rb:28:在call' actionpack (5.0.0.1) lib/action_dispatch/middleware/executor.rb:12:in
调用'actionpack (5.0.0.1)lib / action_dispatch / middleware / static.rb:136:在call'
调用'railties(5.0.0.1) lib / rails / engine.rb:522:在
rack (2.0.1) lib/rack/sendfile.rb:111:incall' puma (3.6.0) lib/puma/configuration.rb:225:in
调用'puma(3.6.0) lib / puma / server.rb:578:inhandle_request' puma (3.6.0) lib/puma/server.rb:415:in
process_client'puma(3.6.0) lib / puma / server.rb:275:在block in run' puma (3.6.0) lib/puma/thread_pool.rb:116:in
调用'puma(3.6.0) lib / puma / thread_pool.rb:116:在“spawn_thread中的块”为:: 1启动POST“/ __ better_errors / 0c664909e8d5ec43 / variables” 2016-10-26 11:49:36 -0400
我完全被难过 - 任何想法/输入都非常感谢!谢谢!
答案 0 :(得分:1)
您的场地控制器的创建方法有一个额外的end
,因此使其下方的所有其他内容都不在控制器之外。您实际上是在创建方法后关闭您的类。
所以从create方法定义中删除一个end
,你没事。